Невозможно использовать оператор импорта вне ошибки модуля после экспорта ZIP из CodeSandbox - PullRequest
0 голосов
/ 29 мая 2020

Я загрузил этот пример Phaser / Matter JS из Codesandbox (-> Файл -> Экспорт в ZIP). Локальный запуск возвращает следующую ошибку:

Uncaught SyntaxError: Невозможно использовать оператор импорта вне модуля - index. js: 1

Как это исправить?

То, что я пробовал до сих пор:

  • Я установил все зависимости
  • Обновлено до последней версии NodeJS
  • Запуск на локальном сервере

Ответы [ 2 ]

1 голос
/ 04 июня 2020

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

Чтобы отправить js что браузеры понимают, вам нужно использовать такой инструмент, как webpack, parcel. уже в проекте используется ваша общая посылка.

Вам необходимо сделать следующее:

  • установить зависимости проекта
  • в каталоге root при запуске проекта npm run start
  • пакет объединит файлы, а затем откроет страницу html с результатами

, к сожалению, когда я попробовал, эта посылка у меня не сработала, были ошибки, связанные с загрузкой JSON, однако мне удалось заставить игру работать, запустив npm run build, это выведет для вас файлы сборки в папке с именем dist.

Go в папку dist, запустите там локальный сервер и посетите файл, который должен работать, но опять же для меня это не сработало. но я заметил, что это связано с тем, что пакет не получает правильный относительный путь к связанному файлу js.

Чтобы решить эту проблему, откройте файл index. html в папке dist, вы обнаружите, что там там один скрипт

<script src="/js.d8530414.js"></script>

Мне пришлось изменить его на

<script src="./js.d8530414.js"></script> // because this was the correct file in my file system

После этого зайдите в файл html в папке dist, и игра отлично работает.

Очевидно, что такой способ работы неудобен, так как для каждого изменения, которое вы хотите видеть, вам придется заново строить проект, используя npm run build. Вам нужно решить проблему npm run start не работает, возможно, эта проблема никогда не возникнет у вас, если вы используете другую ОС, чем моя. Если это произойдет, я предлагаю обновить посылку и повторить попытку, если проблема все еще не устранена, вы можете посмотреть здесь , поскольку проблема, похоже, связана с тем, что фазер хочет, чтобы файл json был json, а посылка компилирует его в javascript объект.

0 голосов
/ 02 июня 2020

index. html:

<script type = "module" src = "./js/index.js">

Вы должны сообщить браузеру, что этот js файл является модулем, тогда он изменит некоторые вещи на обратной стороне, чтобы вы могли его использовать. Эта статья очень полезна для начала работы с модулями.

...