Какой метеорный файл должен содержать оператор импорта npm? - PullRequest
0 голосов
/ 02 ноября 2018

Мы работаем над старым метеорным проектом, который обновляется до 1.8, и мы должны иметь возможность изменить некоторые из старых метеорных пакетов на npm versionvs (например, момент).

Проблема, с которой мы столкнулись, заключается в том, что мы не можем решить, какой файл во всем дереве нам нужно поместить в операторы импорта, потому что до сих пор, где бы мы ни помещали его, мы получаем следующую ошибку в веб-консоли.

SyntaxError: import declarations may only appear at top level of a module 

Мы попробовали почти все файлы в клиенте, включая startup.js, но не можем взломать его.

Куда должны идти эти импортные декларации?

1 Ответ

0 голосов
/ 02 ноября 2018

Это сообщение означает, что ваш клиентский броузер-браузер не передается должным образом. Это может быть по 2 причинам:

  • ваш проект Meteor не переносит код в синтаксис ES5, например если ему не хватает пакета ecmascript, или Babel, Babel Runtime и т. д.
  • Вы импортируете файл из node_modules, который все еще имеет это ключевое слово import: по умолчанию Meteor предполагает, что модули npm уже используются как есть и не перекомпилируются (для производительности). В большинстве случаев это происходит из-за того, что импортированный по умолчанию файл модуля npm находится в форме esm (файл, указанный в "main" поле package.json), но, как правило, поставляется также в виде транспортируемой или связанной формы. В этом случае просто явно импортируйте этот файл dist / transpiled вместо файла пакета по умолчанию.

В некоторых случаях некоторые модули не поставляют такую ​​переданную версию. В этом случае вам придется сначала провести его самостоятельно. Смотрите также Скомпилируйте пакет в node_modules для использования в браузере

...