如何在js包文件中添加哈希码进行缓存

dev*_*iya 3 caching bundler webpack

我是 webpack 配置的新手,请让我知道如何在生成的 js 捆绑文件中添加哈希码以缓存我的静态资源。提前致谢

小智 5

要为生成的包添加哈希码,请将这些行添加到您的 webpack.config.js 文件中。

output: {
    filename: '[name].[contenthash].js',
    path: path.resolve(__dirname, 'dist'),
}
Run Code Online (Sandbox Code Playgroud)

用于服务器缓存

您需要将主块拆分为运行时块和供应商块。为此,您需要在 webpack.config.js 文件的优化部分添加以下代码。

optimization: {
    runtimeChunk: 'single',
    moduleIds: 'hashed',
    splitChunks: {
        cacheGroups: {
            vendor: {
                test: /[\\/]node_modules[\\/]/,
                name: 'vendors',
                chunks: 'all',
            },
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

每次更改代码时,其他块/哈希(供应商、运行时)都不会更改。因此,客户端(浏览器)不会获取从缓存加载的未更改的块。

参考链接 https://webpack.js.org/guides/caching/