Подтвердить что ты не робот

Nodejs 8 import module - требуется или импортировать?

Просто интересно, как мы импортируем модуль в node.js 8 - мы все еще используем require?

Или нам все еще нужен babel для использования import?

Я копался, но, похоже, не ответил. Если нам еще нужно использовать require, то почему node не может реализовать import?

4b9b3361

Ответ 1

UPDATE-2017.11.01 ↓

Загрузка ESM частично приземлилась в node 8.5.0, который был выпущен в сентябре. См. Документацию по API здесь. Предостережения включают необходимость в флаге --experimental-modules и использование нового расширения .mjs для модулей. Вы можете посмотреть полное обсуждение здесь

Все еще есть изменения, которые должны произойти в V8 до того, как загрузка ESM будет стабильной и полнофункциональной, так как с моим исходным ответом я бы посоветовал придерживаться CommonJS require, если вы еще не используете Babel для других вещей. Смотрите post для более дидактического объяснения


ПРЕДЫДУЩИЙ ОТВЕТ ↓

Две реализации полностью различаются под капотом, поэтому для нее есть нечто большее, чем то, что встречает глаза.

Вывод заключается в том, что все еще сохраняются проблемы/вопросы по спецификациям (вплоть до V8), и как таковые import в настоящее время не могут быть реализованы в node без использования транспилера

Смотрите этот комментарий (от февраля 2017 года) от одного из автора:

В текущий момент времени все еще существует ряд проблем спецификации и реализации, которые должны произойти на стороне ES6 и виртуальной машины, прежде чем Node.js может даже начать работу по поддержке поддерживающей реализации модулей ES6, Работа ведется, но на это уходит некоторое время - в настоящее время смотрят не менее года.

Имейте в виду, что транспиляторы просто преобразуют синтаксис модуля ES6 в синтаксис модуля CommonJS, поэтому в настоящее время нет преимуществ по производительности. Другими словами, если у вас уже нет конвейера Babel, нет стимулов для создания одного только для использования нового предложенного синтаксиса import, за исключением проактивной синтаксической перспективы

Подробнее о том, как отличается реализация, см. эту запись