Выбор ответа Middle Модули обновлено

Поле type в package.json

Вопрос

В package.json проекта указано "type": "module". Как Node.js 22 интерпретирует файлы?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: .js и .mjs как ES-модули, .cjs как CommonJS. Поле type задаёт режим для файлов .js в пределах пакета: "module" означает ESM, отсутствие поля или "commonjs" означает CJS.

Варианты ответа

  1. Все файлы, включая .cjs, как ES-модули
  2. Только .mjs как ES-модули, остальные как CommonJS
  3. .js и .mjs как ES-модули, .cjs как CommonJSправильный ответ
  4. Поле влияет только на сборщики, Node его игнорирует

Разбор

Поле type задаёт режим для файлов .js в пределах пакета: "module" означает ESM, отсутствие поля или "commonjs" означает CJS. Расширения .mjs и .cjs всегда однозначны и от поля не зависят, поэтому .cjs остаётся CommonJS. Node это поле читает и использует при загрузке, это не только подсказка сборщикам.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.