2017-01-02 73 views
2

我正在使用create-react-app并尝试安装mapbox-gl-draw。如何使用webpack导入mapbox-gl-draw?

npm install @mapbox/mapbox-gl-draw 

这适用于一些npm警告。然后我尝试将mapbox-gl-draw拖入这样一个组件:

import React,{Component} from 'react'; 
import mapboxgl from 'mapbox-gl/dist/mapbox-gl.js'; 
import ReactMapboxGl from 'react-mapbox-gl'; 
import MapboxDraw from '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw' 

console.log(MapboxDraw) 

我只是得到一个空的对象。

我正在使用create-react-app。我需要使用不同的webpack .config文件吗?

导入这样的mapbox模块的最佳方式是什么?

回答

1

如果您使用的WebPack,你需要要使用的别名mapbox-GL DIST文件,这里是我如何使用做了webpack2:

resolve: { 
     modules: ['src', 'node_modules'], 
     extensions: ['.js', '.jsx', '.json', '.css', '.svg'], 
     alias: { 
     // mapbox-gl related packages in webpack should use dist instead of the default src 
     '@mapbox/mapbox-gl-draw': path.resolve(root, 'node_modules/@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.js'), 
     }, 
    }, 

变量“根”早些时候的文件中定义在与package.json相同的级别上引用项目的根目录。

在react-map-gl-alt中,您需要将“mapbox”别名为“node_modules/mapbox”时会发生同样的问题/dist/distfilehere.js'。

+0

嗨,我想使用mapbox-gl-draw但是对于我的Angular 2/4应用程序,编辑我的package.json以便正确使用模块的最佳方法是什么? –

0

要在medv的回答扩大,在目前,在你的package.json,你需要添加mapbox-GL v0.270 - v0.38.0,如:使用"@mapbox/mapbox-gl-draw": "^1.0.1"

"mapbox-gl": ">=0.27.0 <=0.38.0

这是at the 'Requires' line here &如果您看package.json中的peerDependencies