角度mapbox-gl-draw“ MapboxDraw不是构造函数”

时间:2019-10-03 09:55:29

标签: angular mapbox mapbox-gl

我正在Angular 8应用程序中使用mapbox-gl,并试图添加mapbox-gl-draw功能。我已经通过cpm(cpm i @mapbox/mapbox-gl-draw)安装了它,添加了css文件并添加了两行代码:

buildMap() {
  this.map = new mapboxgl.Map({
    container: 'map',
    style: this.style,
    zoom: 10,
    center: [this.lng, this.lat]
  });

  var draw = new MapboxDraw();
  this.map.addControl(draw);

}

这会在控制台中产生以下错误:

  

错误TypeError:_mapbox_mapbox_gl_draw_dist_mapbox_gl_draw__WEBPACK_IMPORTED_MODULE_3 __。MapboxDraw不是构造函数

(应用程序继续运行。)

我只能在网上找到唯一的解决方案,建议我从以下位置更改导入:

import { MapboxDraw } from '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw';

import * as MapboxDraw from 'mapbox-gl-draw'; 

这需要在npm上使用以下命令重新安装map-gl-draw:

  

npm i map-gl-draw

重新安装npm时,通知我该命令已被弃用,并由我最初使用的命令代替:

cpm i @mapbox/mapbox-gl-draw

无论安装完成,现在我的应用均无法运行并产生错误:

  

./ node_modules / jsonlint-lines / lib / jsonlint.js   找不到模块:错误:无法在...中解析“ fs”

这是进展吗?关于解决Angular中的“ fs”错误,存在一些疑问和答案,我已经尝试了一些建议,例如引入自定义Webpack而不成功。我了解默认的Angular webpack不会加载fs。但是,我使用错误的cpm安装来进行此操作的事实使我觉得无论如何我都走错了路。

更新,在我将以下内容引入我的angular.json文件后,它现在可以运行:

"browser": {
    "fs": false
}

尽管npm明确指出我现在使用的是不推荐使用的版本,但这一切都让人感到很不舒服。

0 个答案:

没有答案