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

Зачем хеш в имени файла

Вопрос

Зачем сборщик кладёт хеш содержимого в имя файла (app-8c1f2a.js)?

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

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

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

Коротко

Правильный ответ: Кешировать файл надолго, а при изменении кода сменить имя. Это стратегия cache busting: ассетам ставят Cache-Control: max-age=31536000, immutable, а index.html кешируют коротко.

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

  1. Кешировать файл надолго, а при изменении кода сменить имяправильный ответ
  2. Чтобы защитить код от копирования и подмены на CDN
  3. Чтобы браузер проверил целостность файла по хешу в имени
  4. Чтобы файлы не конфликтовали с одинаковыми именами в node_modules

Разбор

Это стратегия cache busting: ассетам ставят Cache-Control: max-age=31536000, immutable, а index.html кешируют коротко. Новый билд даёт новые имена, и пользователи получают свежий код.

  • Хеш в имени ничего не защищает.
  • Проверку целостности делает атрибут integrity (SRI), а не имя файла.
  • Имена в node_modules тут ни при чём.

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

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

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