Есть ли способ поместить хеш содержимого чанка в имя файла каждого файла, а не хеш всего чанка?
Я использую это прямо сейчас:
output: {
filename: '[name].[chunkhash].js',
chunkFilename: 'chunk.[chunkhash].js',
},
plugins: [
new MiniCssExtractPlugin({
filename: '[name].[hash].css',
chunkFilename: 'chunk.[chunkhash].css',
}),
],
Но если я изменю файл JS, [chunkhash] файла CSS тоже изменится, и наоборот. Нет причин аннулировать кеш файла, который не изменился.
@SeanLarkin Не лучше ли взяться за это из ядра? Добавление [contenthash] в mini-css-extract-plugin решит проблему, если имена файлов CSS меняются при редактировании JS, но не наоборот, правильно? И проблема будет возникать каждый раз, когда будут поддерживаться новые типы файлов, не так ли?
Это хороший момент, но я помню, что было некоторое ограничение, о котором я не могу говорить в данный момент. Вы также можете отправить в webpack / webpack и начать оттуда. Затем мы можем погрузиться в жизнеспособность функции для всех типов активов и т. д.
@SeanLarkin На самом деле уже есть PR за добавление его в minicss: github.com/webpack-contrib/mini-css-extract-plugin/pull/30
Формулировка этого вопроса немного забавная, но я думаю, что это та же проблема: github.com/webpack/webpack/issues/672


Текущая версия как webpack (как минимум, ^4.5.0), так и mini-css-extract-plugin (как минимум ^0.9.0) поддерживает заполнитель [contenthash] в output.filename и filename соответственно.
Это было бы отличной проблемой для GitHub, поскольку я не думаю, что у нас есть поддержка
contenthashдля этого плагина. GitHub.com/webpack-contribs/mini-css-extract-plugin