Как импортировать Mapbox GL Draw в проект Angular 8 - PullRequest
1 голос
/ 31 марта 2020

Я работаю над проектом Angular 8 с Webpack. Мне удалось интегрировать Mapbox GL JS, но я не знаю, как импортировать Mabox GL Draw . У меня есть следующие версии:

"@angular/core": "8.2.14",
"mapbox-gl": "^1.9.0",
"@types/mapbox-gl": "^1.8.2",
"@mapbox/mapbox-gl-draw": "^1.1.2",

Я следовал Mapbox GL Draw Docs , поэтому в моем Angular Сервисе я добавил:

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

Итак, я ' Вы получили эту ошибку:

TS7016: Не удалось найти файл объявлений для модуля '@ mapbox / mapbox-gl-draw'. «/home/tommy/Work/engineering/effector/effector-gui/node_modules/@mapbox/mapbox-gl-draw/index.js» неявно имеет тип «любой». Попробуйте npm install @types/mapbox__mapbox-gl-draw, если он существует, или добавьте файл нового объявления (.d.ts), содержащий `Declare module '@ mapbox / mapbox-gl-draw';

После этого предложения Я пытаюсь использовать Требуется вместо Импорт :

const MapboxDraw = require('@mapbox/mapbox-gl-draw');

У меня было это:

3: 20 Требуется ошибка оператор не является частью оператора import @ typescript-eslint / no-var-required ERROR в ./node_modules/jsonlint-lines/lib/jsonlint.js Модуль не найден: ошибка: не удается разрешить 'fs' в '/ home / user / proj / node_modules / jsonlint-lines / lib

Поэтому я попытался следовать этому , я изменил свой tsconfig. json и я устанавливается через npm "фс". Но возникает ошибка:

Эта зависимость не найдена: * fs in ./node_modules/jsonlint-lines/lib/jsonlint.js Чтобы установить ее, вы можете запустить: npm install --save fs Ошибки типа не найдены

Поэтому я решил вернуться к первой ошибке и следовал this . Я изменил файл tsconfig. json, добавив следующие значения:

    "typeRoots": ["node_modules/@types","./types"],
...
  "exclude": ["node_modules","./types"]

Чем я создал index.d.ts файл внутри этих трех типов папок / @ mapbox / mapbox-gl-draw / с этим содержимым

declare module '@mapbox/mapbox-gl-draw';

Но я получаю эту ошибку

ОШИБКА в undefined (undefined, undefined): TS2688: Не удается найти файл определения типа для '@mapbox'.

Теперь я чувствую себя так близко к решению, но я не знаю, как go дальше.

1 Ответ

0 голосов
/ 31 марта 2020

Я создал дополнительный index.d.ts файл внутри types / @ mapbox папки с таким содержанием:

declare module '@mapbox';

Но на этот раз я получил это назад:

ERROR  Failed to compile with 1 errors
This dependency was not found:
* fs in ./node_modules/jsonlint-lines/lib/jsonlint.js
To install it, you can run: npm install --save fs

И после этого и этого в моем webpack.common. js файле я добавил строку, связанную с fs :

module.exports = (options) => ({
    node: { fs: 'empty' },
    resolve: {

Затем код был успешно скомпилирован.

...