3

Пишу код

import create from './create'

А у меня ошибка:

SyntaxError: Unexpected token import

Сервер запускаю так

node server

Можно добавить параметр node --experimental-modules server И переименовать файл server.js в server.mjs. Но при это перестаёт работать require


А можно ли как то настроить такое поведение по умолчанию? Чтобы не писать лишние аргументы. Чтобы работало и module и require?

Roman C
  • 9,043
  • 4
  • 20
  • 28
manking
  • 6,393
  • А зачем вам в одном и том же файле использовать и import и require одновременно? – Pavel Mayorov Aug 08 '18 at 10:21
  • На данный момент нормальной поддержки нету, если очень нужно, то можно использовать Babel – RTK Aug 08 '18 at 10:22
  • Просто много файлов проекта написано через require. А сейчас хочется всё новое что будет разрабатываться перевести на import. Получается это 2 несовместимые системы модулей, либо как то можно (через babel ) всё таки их подружить? – manking Aug 08 '18 at 10:24

2 Answers2

0

Выдержка из документации по Node.js v10.8.0:

Флаг --experimental-modules может использоваться для включения функций для загрузки модулей ESM.

Как только это будет установлено, файлы, заканчивающиеся на .mjs, будут загружаться в виде модулей ES.

node --experimental-modules my-app.mjs
Roman C
  • 9,043
  • 4
  • 20
  • 28
-1

ts-node отлично работает для этих целей, если набор js-фишек в тайпскрипте вас устраивает

ts-node index.js