Выбор ответа Junior Модули и npm обновлено
Как Node понимает, что .js это ESM
Вопрос
Файлы проекта .js написаны с import/export. Как явно сообщить Node.js, что их нужно выполнять как ES-модули?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Добавить "type": "module" в package.json проекта. Для .js формат определяет поле type ближайшего package.json.
Варианты ответа
- Запускать с флагом
--input-type=module - Запускать с флагом
--harmony - Добавить
"type": "module"в package.json проектаправильный ответ - Добавить в начало каждого файла директиву
"use module"
Разбор
Для .js формат определяет поле type ближайшего package.json. Альтернатива для отдельных файлов: расширение .mjs. Node 22 умеет и сам догадаться по синтаксису, но это запасной механизм с лишним разбором файла, в проектах формат задают явно.
--harmonyвключал экспериментальные возможности V8 и к модулям отношения не имеет.--input-typeдействует только на код из--evalи stdin, не на файлы.- Директивы
"use module"не существует.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.