Webpack 4: хэш содержимого файла?

Есть ли способ поместить хеш содержимого чанка в имя файла каждого файла, а не хеш всего чанка?

Я использую это прямо сейчас:

    output: {
        filename: '[name].[chunkhash].js',
        chunkFilename: 'chunk.[chunkhash].js',
    },
    plugins: [
        new MiniCssExtractPlugin({
            filename: '[name].[hash].css',
            chunkFilename: 'chunk.[chunkhash].css',
        }),
    ],

Но если я изменю файл JS, [chunkhash] файла CSS тоже изменится, и наоборот. Нет причин аннулировать кеш файла, который не изменился.

Это было бы отличной проблемой для GitHub, поскольку я не думаю, что у нас есть поддержка contenthash для этого плагина. GitHub.com/webpack-contribs/mini-css-extract-plugin

Sean Larkin 16.03.2018 22:16

@SeanLarkin Не лучше ли взяться за это из ядра? Добавление [contenthash] в mini-css-extract-plugin решит проблему, если имена файлов CSS меняются при редактировании JS, но не наоборот, правильно? И проблема будет возникать каждый раз, когда будут поддерживаться новые типы файлов, не так ли?

mpen 16.03.2018 22:32

Это хороший момент, но я помню, что было некоторое ограничение, о котором я не могу говорить в данный момент. Вы также можете отправить в webpack / webpack и начать оттуда. Затем мы можем погрузиться в жизнеспособность функции для всех типов активов и т. д.

Sean Larkin 16.03.2018 22:34

@SeanLarkin На самом деле уже есть PR за добавление его в minicss: github.com/webpack-contrib/mini-css-extract-plugin/pull/30

mpen 16.03.2018 22:40

Формулировка этого вопроса немного забавная, но я думаю, что это та же проблема: github.com/webpack/webpack/issues/672

mpen 16.03.2018 22:58
Поиск всех неиспользуемых файлов в проекте
Поиск всех неиспользуемых файлов в проекте
Количество файлов в проекте растет по мере его развития. И если быть по-настоящему честным, их продвижение происходит в геометрической прогрессии...
Настройка шаблона Metronic с помощью Webpack и Gulp
Настройка шаблона Metronic с помощью Webpack и Gulp
Я пишу эту статью, чтобы поделиться тем, как настроить макет Metronic с помощью Sass, поскольку Metronic предоставляет так много документации, и они...
3
5
2 885
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Текущая версия как webpack (как минимум, ^4.5.0), так и mini-css-extract-plugin (как минимум ^0.9.0) поддерживает заполнитель [contenthash] в output.filename и filename соответственно.

Другие вопросы по теме