欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
在 uni-app 里,“App 打包加 hash”通常指的是给静态资源(图片、JS、CSS 等)文件名加上 hash 值,用于缓存更新控制。这个是可以通过 vue.config.js 配置来实现的,无论最终是打包成 H5 还是原生 App(Android/iOS),只要是基于 webpack 的构建流程(uni-app 默认使用了 webpack),都可以这样配置。
如何给 App 打包的静态资源加 hash
-
在项目根目录创建或修改 vue.config.js
如果没有这个文件,新建一个。
-
开启 filenameHashing 并自定义输出规则
参考如下配置:
// vue.config.js
module.exports = {
filenameHashing: true, // 开启文件 hash
chainWebpack: (config) => {
// 修改图片等资源的输出文件名规则,加上 hash
config.module
.rule('images')
.use('url-loader')
.loader('url-loader')
.tap(options => {
// fallback 到 file-loader 的配置
return {
...options,
fallback: {
loader: require.resolve('file-loader'),
options: {
name: 'static/img/[name].[hash:8].[ext]' // 这里就是 hash 规则
}
}
}
})
// 也可以直接修改 file-loader 的规则,根据自己需要
// config.module.rule('fonts').use('file-loader').tap(...)
}
}
本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
-
特殊说明:动态绑定的资源
如果使用了 v-bind:src="'./xxx.png'" 这样的动态路径,webpack 可能不会把它当作模块处理,此时就不会自动加上 hash。
-
H5 打包自动加 hash 的例子
H5 模式下 uni-app 默认就会给 JS/CSS 等资源加上 hash,如果发现图片没有加,同样可以用上述方式处理:为什么一个项目打包 H5,静态资源会加上 hash 值
注意事项
- 上述配置对 Android 和 iOS 原生 App 打包同样生效,因为打包过程也是先走 webpack 构建,再把产物打入原生包。
- 如果只是为了区分不同版本的安装包(例如 APK 文件名),云打包生成的 APK 文件名默认是类似
__UNI_xxx.apk,并不是可自定义的 hash,但你可以下载后自行重命名(比如加入版本号或 md5)。
- 配置后需要重新打包才能看到文件名变化,建议使用自定义基座调试确认。
按上述方式配置后,App 里的静态资源就会像 H5 一样带上 hash,方便版本更新时避免缓存问题。
1 个回复
Ask小助手 - Ask社区AI助手
在 uni-app 里,“App 打包加 hash”通常指的是给静态资源(图片、JS、CSS 等)文件名加上 hash 值,用于缓存更新控制。这个是可以通过 vue.config.js 配置来实现的,无论最终是打包成 H5 还是原生 App(Android/iOS),只要是基于 webpack 的构建流程(uni-app 默认使用了 webpack),都可以这样配置。
如何给 App 打包的静态资源加 hash
在项目根目录创建或修改
vue.config.js如果没有这个文件,新建一个。
开启 filenameHashing 并自定义输出规则
参考如下配置:
特殊说明:动态绑定的资源
如果使用了
v-bind:src="'./xxx.png'"这样的动态路径,webpack 可能不会把它当作模块处理,此时就不会自动加上 hash。require('@/static/xxx.png')或import的方式引入,或者将路径写成字面量字符串让 webpack 静态分析到。H5 打包自动加 hash 的例子
H5 模式下 uni-app 默认就会给 JS/CSS 等资源加上 hash,如果发现图片没有加,同样可以用上述方式处理:为什么一个项目打包 H5,静态资源会加上 hash 值
注意事项
__UNI_xxx.apk,并不是可自定义的 hash,但你可以下载后自行重命名(比如加入版本号或 md5)。按上述方式配置后,App 里的静态资源就会像 H5 一样带上 hash,方便版本更新时避免缓存问题。
要回复问题请先登录或注册
公告
更多>相关问题