uni-app扩展节点中自定义的环境变量发行编译后无效

uni-app扩展节点中自定义的环境变量发行编译后无效

开发环境 版本号 项目创建方式
HbuilderX 3.2.9

操作步骤:

  • package.json中增加uni-app扩展节点自定义env中的环境变量,点击发行

预期结果:

  • 项目中可以正常读取到自定义的环境变量

实际结果:

  • 无法正常读取到自定义的环境变量

bug描述:

  • package.json中的uni-app扩展节点中自定义的环境变量发行编译后无效,运行编译有效

更多关于uni-app扩展节点中自定义的环境变量发行编译后无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

更新到HBuilderX 3.2.10 alpha 版本 查看相关问题帖子:https://ask.dcloud.net.cn/question/131791

更多关于uni-app扩展节点中自定义的环境变量发行编译后无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在uni-app中,通过package.jsonuni-app扩展节点配置自定义环境变量时,发行编译后变量失效,通常是因为环境变量的注入机制在运行编译和发行编译中存在差异。

原因分析:

  1. 运行编译:HBuilderX在运行时会动态注入uni-app扩展节点中定义的环境变量,因此开发阶段可以正常读取。
  2. 发行编译:发行时,代码会被打包压缩,环境变量需要在编译阶段静态注入。如果配置方式不正确,或构建工具(如Webpack)未正确处理这些变量,会导致变量丢失。

解决方案:

  1. 检查配置格式:确保package.json中的uni-app扩展节点配置正确,例如:
    {
      "uni-app": {
        "scripts": {
          "custom-env": {
            "env": {
              "YOUR_VAR": "your-value"
            }
          }
        }
      }
    }
    
  2. 使用条件编译:在代码中通过条件编译区分开发和生产环境,例如:
    // #ifdef H5
    const apiUrl = process.env.NODE_ENV === 'development' ? '开发环境地址' : '生产环境地址';
    // #endif
回到顶部