Выбор ответа Middle Модули обновлено
Поле type в package.json
Вопрос
В package.json проекта указано "type": "module". Как Node.js 22 интерпретирует файлы?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: .js и .mjs как ES-модули, .cjs как CommonJS. Поле type задаёт режим для файлов .js в пределах пакета: "module" означает ESM, отсутствие поля или "commonjs" означает CJS.
Варианты ответа
- Все файлы, включая
.cjs, как ES-модули - Только
.mjsкак ES-модули, остальные как CommonJS .jsи.mjsкак ES-модули,.cjsкак CommonJSправильный ответ- Поле влияет только на сборщики, Node его игнорирует
Разбор
Поле type задаёт режим для файлов .js в пределах пакета: "module" означает ESM, отсутствие поля или "commonjs" означает CJS. Расширения .mjs и .cjs всегда однозначны и от поля не зависят, поэтому .cjs остаётся CommonJS. Node это поле читает и использует при загрузке, это не только подсказка сборщикам.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.