uni-app 打包发行h5后多次重新打包 chunk-vendors.js 上的 contenthash 一直变化 其它js文件不变
uni-app 打包发行h5后多次重新打包 chunk-vendors.js 上的 contenthash 一直变化 其它js文件不变
示例代码:
module.exports = {
configureWebpack: config => {
config.optimization={
...config.optimization,
chunkIds:"named",
moduleIds:"hashed",
splitChunks:{
cacheGroups:{
vendors:{
name:'chunk-vendors',
priority:10,
test:/[\\\/]node_modules[\\\/]/,
chunks: 'initial',
},
common:{
name:'chunk-common',
priority:1,
minChunks: 2,
chunks: 'all',
reuseExistingChunk: true
}
}
}
}
}
操作步骤:
- 直接点击[发行]-[网站-pc]
预期结果:
希望不改变内容情况下 chunk-vendors.js的hash值也不改变
实际结果:
每次都会改变 chunk-vendors.js的hash值
bug描述:
不修改代码,每次点击发布到h5后,其它js文件的contenthash值不会改变,只有chunk-vendors.js的contenthash值会发生改变
更多关于uni-app 打包发行h5后多次重新打包 chunk-vendors.js 上的 contenthash 一直变化 其它js文件不变的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
排查问题发现就是 启用摇树优化 导致的问题,空项目和取消摇树优化不会出现该问题
更多关于uni-app 打包发行h5后多次重新打包 chunk-vendors.js 上的 contenthash 一直变化 其它js文件不变的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你好我看到你的帖子,宽屏适配中canvas组件报错已锁定回复,是不是这个问题解决了?
这个问题是由于 webpack 的缓存机制导致的。chunk-vendors.js 包含了 node_modules 中的依赖,即使你没有修改代码,但以下因素可能导致其 hash 变化:
- webpack 内部模块顺序:webpack 在构建时模块的解析顺序可能微调
- 时间戳或构建环境变量:构建过程可能包含时间戳等变量
- 依赖版本元数据:package-lock.json 或 yarn.lock 中的元数据变化
解决方案:
修改你的 vue.config.js 配置:
const { defineConfig } = require('[@vue](/user/vue)/cli-service')
module.exports = defineConfig({
configureWebpack: {
optimization: {
moduleIds: 'deterministic',
chunkIds: 'deterministic',
splitChunks: {
cacheGroups: {
vendors: {
name: 'chunk-vendors',
test: /[\\/]node_modules[\\/]/,
priority: 10,
chunks: 'initial',
enforce: true
},
common: {
name: 'chunk-common',
minChunks: 2,
priority: 5,
chunks: 'initial',
reuseExistingChunk: true
}
}
}
}
}
})

