Вам может понадобиться соответствующий загрузчик для обработки этого типа файла

Я хочу использовать реагирующий листок в своем проекте реагирования, но я не понимаю, как заставить его работать. Я всегда получаю сообщение об ошибке, когда пытаюсь скомпилировать свой код:

ERROR in ./node_modules/react-leaflet/src/index.js 5:7
Module parse failed: Unexpected token (5:7)
You may need an appropriate loader to handle this file type.
| export { LeafletConsumer, LeafletProvider, withLeaflet } from './context'
|
> export type {
|   LeafletContext,
|   LatLng,

Я не понимаю, что я сделал не так :( Я попробовал пример из репозитория git, и он сработал, поэтому я не знаю, в чем разница между моим проектом и git. Я проверил руководство по установке и сделал все необходимое .

Вот мой webpack.config.js

const HtmlWebPackPlugin = require("html-webpack-plugin");

const htmlWebpackPlugin = new HtmlWebPackPlugin({
  template: "./src/index.html",
  filename: "./index.html"
});

module.exports = {
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      },
      {
        test: /\.css$/,
        use: [
          {
            loader: "style-loader"
          },
          {
            loader: "css-loader",
            options: {
              modules: true,
              importLoaders: 1,
              localIdentName: "[name]_[local]_[hash:base64]",
              sourceMap: true,
              minimize: true
            }
          }
        ]
      }
    ]
  },
  plugins: [htmlWebpackPlugin]
};

My package.json :

{
  "name": "simple_webpack",
  "version": "1.0.0",
  "description": "",
  "main": "src/index.js",
  "scripts": {
    "start": "webpack-dev-server --mode development",
    "build": "webpack --mode production"
  },
  "author": "Drigtime",
  "license": "",
  "devDependencies": {
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.4",
    "babel-preset-env": "^1.6.1",
    "babel-preset-react": "^6.24.1",
    "css-loader": "^0.28.11",
    "html-webpack-plugin": "^3.1.0",
    "style-loader": "^0.20.3",
    "webpack": "^4.2.0",
    "webpack-cli": "^2.0.13",
    "webpack-dev-server": "^3.1.1"
  },
  "dependencies": {
    "leaflet": "^1.3.3",
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
    "react-leaflet": "^2.0.0"
  }
}

И фактический код, который не работает

import React from "react";
import ReactDOM from "react-dom";
import { Map, TileLayer } from "react-leaflet/src";

const Index = () => {
  return (
    <Map>
      <TileLayer
        attribution="&amp;copy <a href=&quot;http://osm.org/copyright&quot;>OpenStreetMap</a> contributors"
        url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
      />
    </Map>
  );
};

ReactDOM.render(<Index />, document.getElementById("index"));

person William Varlet    schedule 13.08.2018    source источник
comment
Можете ли вы сделать небольшой обзор всех ваших файлов? Кроме того, вы пытались использовать этот пример: github.com/PaulLeCam/react-leaflet /дерево/мастер/пример   -  person duhaime    schedule 13.08.2018


Ответы (1)


Похоже, ваш импорт должен быть:

import { Map, TileLayer } from "react-leaflet";

Простое исправление!

person duhaime    schedule 13.08.2018
comment
О, ты прав, я не знаю, почему я не подумал об этом ^^' большое спасибо;) - person William Varlet; 13.08.2018
comment
@WilliamVarlet с удовольствием! - person duhaime; 13.08.2018