/
Вопросы и ответы
/
JavaScript
/

Почему появляется ошибка SyntaxError: Cannot use import statement outside a module при запуске Node.js скрипта?

Почему появляется ошибка SyntaxError: Cannot use import statement outside a module при запуске Node.js скрипта?

При попытке запустить файл Node.js напрямую, который использует синтаксис ES6 модулей (import/export), появляется ошибка:

SyntaxError: Cannot use import statement outside a module

Импорт и экспорт в коде настроены правильно, но при запуске напрямую через node src/bin/brain-games.js код падает. Почему так происходит и как правильно запускать такой код?

5 месяцев назад

Nikolai Gagarinov

Ответы

0

Ошибка возникает потому, что Node.js по умолчанию использует CommonJS модули (require/module.exports) и не понимает синтаксис ES6 модулей (import/export) без настройки.

Чтобы Node мог работать с современным синтаксисом модулей, нужно в файле package.json добавить:

{
  "type": "module"
}

После этого Node будет интерпретировать все .js файлы как ES-модули, и запуск напрямую будет работать:

node src/bin/brain-games.js

Альтернатива — использовать Babel для транспайлинга кода из import/export в CommonJS, но проще и современнее — включить "type": "module" в package.json.

5 месяцев назад

Nikolai Gagarinov

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845