Выбор ответа Senior Сборщики обновлено
Поле sideEffects в package.json
Вопрос
Что сообщает сборщику "sideEffects": false в package.json библиотеки?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Импорт модулей ничего не делает, и неиспользуемый модуль можно выбросить. Без этой пометки сборщик обязан сохранить модуль, даже если его экспорты не используются: вдруг при импорте он что-то регистрирует или патчит глобалы. false разрешает удалять такие модули.
Варианты ответа
- Что библиотека не использует DOM и может работать в Node.js
- Импорт модулей ничего не делает, и неиспользуемый модуль можно выброситьправильный ответ
- Что функции библиотеки чистые, и их результаты сборщик может мемоизировать
- Что CSS библиотеки не нужно подключать при сборке
Разбор
Без этой пометки сборщик обязан сохранить модуль, даже если его экспорты не используются: вдруг при импорте он что-то регистрирует или патчит глобалы. false разрешает удалять такие модули. Если в пакете есть CSS-импорты или полифилы, их перечисляют массивом, иначе они пропадут.
- К окружению Node или браузера поле отношения не имеет.
- Про мемоизацию и чистоту функций в рантайме оно ничего не говорит.
- Наоборот, CSS часто надо указать в
sideEffects, чтобы его не выбросили.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.