Я использую mapbox-gl в приложении Angular 8 и пытаюсь добавить функцию 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';
Это потребовало переустановки map-gl-draw с помощью следующей команды на npm:
npm i map-gl-draw
При переустановке npm уведомил меня о том, что эта команда устарела и заменена командой, которую я использовал изначально:
cpm i @mapbox/mapbox-gl-draw
Установка завершена независимо и сейчасмое приложение больше не работает и выдает ошибку:
. / node_modules / jsonlint-lines / lib / jsonlint.js Модуль не найден: ошибка: не удается разрешить 'fs' в ...
Это прогресс? Есть вопросы и ответы по устранению этой ошибки «fs» в Angular, и я попробовал такие предложения, как введение собственного веб-пакета безуспешно. Я понимаю, что стандартный веб-пакет Angular не загружает фс. Однако тот факт, что я использовал неправильную установку cpm для перехода на этот этап, заставляет меня думать, что я на неправильном пути, независимо от того,
ОБНОВЛЕНИЕ Теперь он работает после того, как я представилпосле моего файла angular.json:
"browser": {
"fs": false
}
Все это выглядит очень странно, хотя npm четко заявило, что я сейчас использую устаревшую версию.