Обновленная имплементация поддержки ES2015 Modules в Node.js
Майлз Боринз три дня назад открыл пулл-реквест в Node.js с обновлённой имплементацией поддержки ES2015 Modules.
Самое значимое изменение – возможность использовать новые модули в файлах с расширением *.js
. Теперь в Node.js есть три возможности работать с новыми модулями:
- используя расширение
*.mjs
; - используя расширение
*.js
иtype: module
в package.json; - используя расширение
*.js
и флаги командной строки--type=module
/-m
.
Причиной изменения подхода стала критика со стороны сообщества предыдущего механизма, когда работа с ES модулями была доступна только в файлах *.mjs
. Для сохранения совместимости с CommonJS было добавлено специальное расширение *.cjs
.
Разработчики Node.js пока не рекомендуют использовать ES модули в публикуемых пакетах. Релиз поддержки новых модулей без флага запланирован до выхода LTS версии Node.js 12 (октябрь 2019).