Как включить модули ES в Node.js

Как включитьimportсинтаксис в Node.js?

Многие учебники теперь используютimport XXX from 'XXX'(Модули ES) синтаксис вместоconst XXX = require('XXX')(CommonJS) синтаксис.

Если вы добавите это в свое приложение Node.js, это не сработает. Вы получите такую ошибку:

unexpected identifier error

unexpected identifier..

Одно из решений - использоватьВавилон. Если у вас уже есть установка Babel для вашего проекта, это уже должно работать на вас.

Но вам больше не нужен Babel сейчас, потому что Node имеет экспериментальную поддержку модулей ES, и, поскольку он экспериментальный, чтобы включить его, вы должны сделать 3 вещи.

Сначала установите последнюю версию Node.js. Он имеет новейшие и лучшие функции.

Во-вторых, добавьте"type": "module"линия в вашемpackage.jsonфайл.

В-третьих, используйте--experimental-modulesфлаг при вызовеnodejs:

node --experimental-modules app.js

Тебе должно быть хорошо!

Альтернативный вариант - избегать добавления"type": "module"линия в вашемpackage.jsonфайл и вместо этого переименуйте свойapp.jsфайл (или что-то еще) вapp.mjs.

Обратите внимание, что теперьrequire()синтаксис перестанет работать.

Для более старых версий Node.js, которые могут не поддерживать этот флаг, я рекомендую проверитьesmмодуль npm.

Скачать мою бесплатнуюСправочник по Node.js


Дополнительные руководства по узлам: