uni-app 3.2.9版本自定义发行不生效
uni-app 3.2.9版本自定义发行不生效
示例代码:
"uni-app": {
"scripts": {
"h5:prod": {
"title": "正式环境包",
"env": {
"UNI_PLATFORM": "h5",
"APP_ENV": "production"
},
"define": {
"H5-PROD": true
}
}
}
}
// #ifdef H5-PROD
console.log(11111111111)
// #endif
操作步骤:
- package.json里面定义了uni-app–scripts,在实际使用中无法执行到对应的条件编译
预期结果:
- 预期能执行对应自定义发行的条件编译常量
实际结果:
- 无法执行对应自定义发行的条件编译常量
bug描述:
3.2.9版本自定义发行h5没有效果,代码中对应的条件编译变量无法执行
3.2.3版本可以使用
更多关于uni-app 3.2.9版本自定义发行不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
稳定版本啥时候能更新呢
根据你的描述,这是 uni-app 3.2.9 版本的一个已知问题。自定义发行(uni-app.scripts)中定义的 define 配置项,在某些情况下可能无法正确注入到条件编译(#ifdef)的预处理环节。
核心原因:
在 3.2.9 版本中,构建流程可能出现了变更,导致通过 package.json 的 scripts 环境定义的 define 常量,未能被条件编译的预处理器正确识别。这与你提到的 3.2.3 版本可用的情况相符,表明是版本间的兼容性或回归问题。
直接解决方案:
- 临时回退:最直接的解决方法是暂时将
@dcloudio/uni-app等相关核心依赖回退到 3.2.3 版本,直到官方修复此问题。 - 使用环境变量替代:作为临时变通方案,你可以将
APP_ENV等环境变量直接用于条件编译。例如,将你的代码修改为:// #ifdef H5 && APP_ENV === 'production' console.log(11111111111) // #endif


