Webpack 4:内容哈希文件名?

3

是否有一种方法可以将每个文件的内容块的哈希值放入文件名中,而不是整个内容块的哈希值?

我现在正在使用以下代码:

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

但是如果我修改JS文件,CSS文件的[chunkhash]也会改变,反之亦然。没有理由使未更改的文件缓存失效。


这将是一个很好的 GitHub 问题,因为我认为我们还没有针对此插件的 contenthash 支持。GitHub.com/webpack-contribs/mini-css-extract-plugin - Sean Larkin
1
@SeanLarkin,从根本上解决这个问题不是更好吗?如果将[contenthash]添加到mini-css-extract-plugin中,当我编辑JS时CSS文件名会改变,但反之则不会,这样不就解决了问题吗?而且每次支持新的文件类型时,这个问题都会再次出现,对吧? - mpen
1
这是一个很好的观点,但我记得有一些限制,目前无法详细说明。你也可以提交到webpack/webpack,并从那里开始。然后我们可以深入探讨该功能在所有资产类型中的可行性等问题。 - Sean Larkin
1
@SeanLarkin 实际上已经有一个 PR 将其添加到 minicss 中了:https://github.com/webpack-contrib/mini-css-extract-plugin/pull/30 - mpen
这个问题的措辞有点滑稽,但我认为它是同样的问题:https://github.com/webpack/webpack/issues/672 - mpen
1个回答

2

目前版本的webpack(至少^4.5.0)和mini-css-extract-plugin(至少^0.9.0)都支持在output.filenamefilename中使用[contenthash]占位符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接