Что такое webpack-chunk-hash и зачем он нужен?
Этот вопрос проверяет знание подходов к хэшированию в Webpack для эффективного кэширования файлов.
Короткий ответ
webpack-chunk-hash генерирует уникальные хэши для чанков на основе их содержимого. Это важно для кэширования: измененные файлы получают новый хэш, а неизмененные остаются закэшированными, ускоряя загрузку.
Длинный ответ
В Webpack хэширование используется для создания уникальных имен файлов, что помогает браузеру определить, нужно ли обновить кэшированный ресурс. По умолчанию используется hash, который зависит от всей сборки. Однако это не всегда удобно, так как любые изменения приводят к смене хэшей всех файлов.
webpack-chunk-hash генерирует хэши на основе содержимого каждого отдельного чанка. Например:
const WebpackChunkHash = require('webpack-chunk-hash');
module.exports = {
plugins: [
new WebpackChunkHash(), // Уникальные хэши для чанков
],
};
Преимущества:
- Изменение одного модуля не затрагивает хэши остальных.
- Эффективное использование кэша браузера.
В последних версиях Webpack contenthash и chunkhash встроены и заменяют необходимость внешнего плагина.