Не удается найти модуль «mapbox-gl/dist/mapbox-gl.js»

Я получаю сообщение об ошибке при попытке импортировать mapboxgl в мой файл TypeScript.

Я сделал это, как в README для mapbox-gl-js:

import mapboxgl from 'mapbox-gl/dist/mapbox-gl.js';

Затем, когда я запускаю компилятор машинописного текста:

tsc

Я получаю эту ошибку:

error TS2307: Cannot find module 'mapbox-gl/dist/mapbox-gl.js'.

Но по какой-то причине все по-прежнему компилируется и работает нормально. Так что я смущен, что это на самом деле означает?

Я создал для этого задачу на Github: https://github.com/mapbox/mapbox-gl-js/issues/3767


person Michael Wilson    schedule 08.12.2016    source источник


Ответы (4)


Я смог обойти эту проблему, используя этот импорт:

import * as mapboxgl from 'mapbox-gl';

Но не все решается этим. Я использую Rollup для объединения, и теперь это вызвало ошибку:

Illegal reassignment to import 'mapboxgl'
Error: Illegal reassignment to import 'mapboxgl'
at error (C:\Users\m.wilson\AppData\Roaming\npm\node_modules\rollup\src\utils\error.js:2:14)
at disallowIllegalReassignment (C:\Users\m.wilson\AppData\Roaming\npm\node_modules\rollup\src\ast\nodes\shared\disallowIllegalReassignment.js:9:4)
person Michael Wilson    schedule 08.12.2016
comment
См. этот ответ о том, как обойти ошибку Rollup: stackoverflow.com/a/41118458/2393347 - person Michael Wilson; 13.12.2016

error TS2307: Cannot find module 'mapbox-gl/dist/mapbox-gl.js'

Файл mapbox-gl/dist/mapbox-gl.js — это файл сборки, который не зарегистрирован в git. Он включен в пакет npm. Если у вас отсутствует этот файл, вы можете создать его, запустив npm install && npm run build-min в папке mapbox-gl.

person Lucas Wojciechowski    schedule 08.12.2016
comment
Я не пропускаю файл, я думаю, что основная причина возникновения этой ошибки связана с тем, что TypeScript не обнаруживает свой модуль. - person Michael Wilson; 09.12.2016
comment
Если вы видите мой ответ ниже, я вместо этого использовал основной скрипт в npm и смог импортировать через import * as mapboxgl from 'mapbox-gl';, но теперь это вызывает ошибку с сборщиком свертки. - person Michael Wilson; 09.12.2016

Да, ты прав. Чтобы объявить (как и для большинства внешних js-библиотек): из корня вашей папки (возможно, вам придется использовать sudo для установки npm).

$ npm install -g typings;
$ typings install --save --global dt~geojson
$ typings install --save --global dt~mapbox-gl

P.S. Я тоже над этим работаю. Я могу обслуживать и строить, но на Android-симуляции я получаю черный экран. Не могли бы вы правильно, как это для вас было бы хорошо

person workfluo    schedule 12.12.2016
comment
import * as mapboxgl from 'mapbox-gl'; остановит эту ошибку, и мне не нужно было устанавливать для нее типизацию. Но минус в том, что при использовании сборщика Rollup выдается эта ошибка Error: Illegal reassignment to import 'mapboxgl' - person Michael Wilson; 12.12.2016
comment
или, может быть, так: npm install --save @types/mapbox-gl - person workfluo; 12.12.2016
comment
потому что это: npm install --save @types/mapbox-gl - person workfluo; 12.12.2016

Это может быть против всего святого, но я заставил все работать, импортируя вот так...

const mapboxgl = require('../../../node_modules/mapbox-gl/dist/mapbox-gl.js'); const Map = mapboxgl.Map

person BrandonReid    schedule 16.01.2017