Выбор ответа Senior Сборщики обновлено

Поле sideEffects в package.json

Вопрос

Что сообщает сборщику "sideEffects": false в package.json библиотеки?

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

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

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

Коротко

Правильный ответ: Импорт модулей ничего не делает, и неиспользуемый модуль можно выбросить. Без этой пометки сборщик обязан сохранить модуль, даже если его экспорты не используются: вдруг при импорте он что-то регистрирует или патчит глобалы. false разрешает удалять такие модули.

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

  1. Что библиотека не использует DOM и может работать в Node.js
  2. Импорт модулей ничего не делает, и неиспользуемый модуль можно выброситьправильный ответ
  3. Что функции библиотеки чистые, и их результаты сборщик может мемоизировать
  4. Что CSS библиотеки не нужно подключать при сборке

Разбор

Без этой пометки сборщик обязан сохранить модуль, даже если его экспорты не используются: вдруг при импорте он что-то регистрирует или патчит глобалы. false разрешает удалять такие модули. Если в пакете есть CSS-импорты или полифилы, их перечисляют массивом, иначе они пропадут.

  • К окружению Node или браузера поле отношения не имеет.
  • Про мемоизацию и чистоту функций в рантайме оно ничего не говорит.
  • Наоборот, CSS часто надо указать в sideEffects, чтобы его не выбросили.

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

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

Термины по теме