【发布时间】:2016-04-10 14:34:59
【问题描述】:
我已经导入了一个mapboxgl 模块,然后我尝试导入第二个“子模块”地理编码器,如import 'mapbox-gl-geocoder'; 和import mapboxgl.Geocoder from 'mapbox-gl-geocoder';,但这显然是错误的方法,因为我只收到错误@ 987654325@。如何正确地做到这一点?详情如下...
我正在尝试将 Mapbox geocoding example 与 ES6(和 webpack)一起使用。
该示例使用了 2 个这样的 mapbox js 库(跳过文件中不感兴趣的部分):
<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.16.0/mapbox-gl.js'></script>
<script src='https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v1.0.0/mapbox-gl-geocoder.js'></script>
...
<script>
...
var map = new mapboxgl.Map({
...
});
map.addControl(new mapboxgl.Geocoder());
...
</script>
...
那么我想把它“翻译”到我使用 ES6(和 webpack)的项目中。
当我只使用主 mapbox-script (mapbox-gl) 时,我可以像这样很好地使用它:
import mapboxgl from 'mapbox-gl';
let map = new mapboxgl.Map({
...
});
但是当我尝试像这样包含“子模块”mapbox-gl-geocoder 时遇到了麻烦(我很可能以错误的方式导入第二个脚本):
import mapboxgl from 'mapbox-gl';
import 'mapbox-gl-geocoder';
let map = new mapboxgl.Map({
...
});
map.addControl(new mapboxgl.Geocoder());
如何将子模块“添加”到主模块?当我尝试这个时,我只收到以下错误:
Uncaught ReferenceError: mapboxgl is not defined
由于在我添加两行 'import 'mapbox-gl-geocoder'; 和 map.addControl(new mapboxgl.Geocoder()); 之前它运行良好,我猜我错误地导入了第二个库。
【问题讨论】:
-
“麻烦”是什么?..
-
哦,谢谢,在问题中添加了错误...
-
我试过
import mapboxgl.Geocoder from 'mapbox-gl-geocoder';,但这显然是错误的方法......
标签: ecmascript-6