uni-app h5自定义条件编译无法获取
uni-app h5自定义条件编译无法获取
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | 10 | HBuilderX |
示例代码:
{
"uni-app": {
"scripts": {
"test_dolphin_app_h5": {
"title": "测试环境",
"BROWSER": "",
"env": {
"UNI_PLATFORM": "h5",
"APP_ENV": "test-dolphin-reader-h5"
},
"define": {
"TEST_DOLPHIN_APP_H5": true
}
}
}
}
console.log(process.env.APP_ENV)
或者
// #ifdef TEST_DOLPHIN_APP_H5
测试环境所需代码
// #endif
操作步骤:
发行-自定义发行 HBuilder X 3.2.8没有问题,升级到3.2.9就有问题了.
预期结果:
可以正常获取自定义条件编译
实际结果:
console.log(process.env.APP_ENV)为undefined
条件编译不生效
// #ifdef TEST_DOLPHIN_APP_H5
测试环境所需代码
// #endif
更多关于uni-app h5自定义条件编译无法获取的实战教程也可以访问 https://www.itying.com/category-93-b0.html
好的,感谢您的回复。
请问修复了吗,我用3.2.12配置为什么打印还是undefined
回复 DCloud_UNI_LXH: 我这边也出现了这个问题自定义条件编译不生效,之前uni-app编译器旧版本是可以的后面升级到了最新版本就不行了
回复 y***@yinjing.vip: 自定义条件编译怎么写的?贴代码看看。使用的什么版本自定义条件编译失效了?
回复 DCloud_UNI_LXH: 最新的3.3.10版本自定义编译也有问题,不执行编译条件的逻辑
回复 c***@swiftpass.cn: 没有发现有此类问题
3.3.11 又有问题了 输出环境变量依然是undefined
回复 DCloud_UNI_LXH: 麻烦再排查一下
根据你的描述,这很可能是 HBuilderX 3.2.9 版本引入的一个已知问题或变更。在 uni-app 中,自定义条件编译和 process.env 的注入依赖于构建流程。从 3.2.8 到 3.2.9 的升级可能影响了这一机制。
核心问题分析:
process.env.APP_ENV为undefined:这通常意味着在构建时,uni-app脚本中定义的env变量没有正确注入到process.env对象中。这属于构建配置的传递问题。- 条件编译不生效:自定义条件编译标志(如
TEST_DOLPHIN_APP_H5)未在编译阶段被识别,导致相关代码块被错误地移除或保留。
直接解决方案:
回退版本:最直接有效的方法是暂时回退到 HBuilderX 3.2.8 版本,直到官方修复此问题。你可以从 HBuilderX 官网的历史版本中下载并安装 3.2.8。
检查与变通方案(如果必须使用 3.2.9+):
- 检查
package.json配置:确保你的package.json中uni-app脚本配置完全正确,且位于根目录。你提供的配置示例结构是正确的。 - 使用
process.UNI_SCRIPT_ENV:在 HBuilderX 的部分版本中,自定义脚本的环境变量可能需要通过process.UNI_SCRIPT_ENV来访问,而不是直接挂在process.env下。你可以尝试在代码中同时打印这两个对象进行调试:console.log('process.env:', process.env); console.log('process.UNI_SCRIPT_ENV:', process.UNI_SCRIPT_ENV);


