#node.js #babeljs
#node.js #babeljs
Вопрос:
Насколько я знаю, nodejs может понимать только синтаксис require, а не оператор import / export .
Поэтому, когда я хочу использовать инструкцию модуля es6 в nodejs, я должен настроить babel и преобразовать эти инструкции модуля es6 в синтаксис require, чтобы nodejs мог понять, что делать.
https://github.com/kentcdodds/jest-cypress-react-babel-webpack/tree/tjs/jest-00 Но, видя это репозиторий, автор использует module:false
с настройкой babel (см. Файл .babelrc)
Как я знаю, module:false
опция предотвращает перенос инструкции модуля es6.
Nodejs по-прежнему не может понять инструкцию import / export, но как это работает без переноса ..? Любые советы будут оценены!
Комментарии:
1. » Насколько я знаю, nodejs может понимать только синтаксис require, а не инструкцию import / export». Я не думаю, что это должно выполняться в Node, но в браузере.
2. timonweb.com/javascript/how-to-enable-es6-imports-in-nodejs Согласно этой статье, а также многим другим, описывается, что nodejs не поддерживает оператор импорта / экспорта. Так запутался: (
3. Узел @koo поддерживает модули начиная с версии 12 (IIRC). Сначала это было за флагом, но начиная с 14 (ну, на самом деле, какая-то версия 13.X), теперь это должно быть просто обычным делом. Вам нужно установить
"type": "module"
в ближайшем package.json, чтобы включить поддержку модулей ES.4. @VLAZ спасибо за вашу помощь. Но, как вы можете видеть в коде репозитория, который я связал, в ближайшем файле package.json файла .js нет type:module . Тем не менее, это работает, когда я запускаю сервер разработки.
5. @jwkoo опять же, он запускается в браузере , а не в узле. Вы запускаете сервер разработки, но на самом деле он не использует модульную систему. Он просто обслуживает ваши файлы, а сам браузер выполняет связывание модулей.