如何和webpack一起使用缓存破解?

2022-08-17 00:00:00 javascript webpack browser-cache

在webpack之前,我总是依靠以下模式进行缓存破坏:

<script src="foo.js?cacheBust=12345" />

其中12345是服务器在每次构建时为我生成的令牌(它可以是Git哈希,但在我的例子中不是)。

对于webpack,我现在有两个文件:build.jschunk.1.js。因为我引入了第一个带有普通脚本标记的脚本,所以我可以使用上面的模式:

<script src="build.js?cacheBust=12345" />

然而,此时build.js去获取chunk.1.js,并且当它这样做时,它不包括缓存破坏后缀。

我希望webpack自动追加?cacheBust=12345,但我在构建时不知道12345部分,所以无法将其包含在我的webpack.config中。取而代之的是,我必须等待,直到评估了该HTML页面,然后我从服务器获得令牌。

所以,我的问题是,有没有办法让webpack查看用于获取初始文件的参数(例如。?cacheBust=12345)并在获取其他文件时追加相同参数?


解决方案

您可以简单地执行此操作

output: {
    filename: '[name].js?t=' + new Date().getTime(),
    chunkFilename: '[name]-chunk.js?t=' + new Date().getTime(),
    publicPath: './',
    path: path.resolve(__dirname, 'deploymentPackage')
}

相关文章