2017-01-02 114 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