uni-app 自定义扩展的平台 自定义发行不生效

uni-app 自定义扩展的平台 自定义发行不生效

开发环境 版本号 项目创建方式
Mac 11.5.2 HBuilderX

产品分类:uniapp/H5

浏览器平台:Chrome
浏览器版本:96.0.4664.93


示例代码:

"uni-app": {
  "scripts": {
    "h5-dev": {
      "title": "测试环境",
      "env": {
        "UNI_PLATFORM": "h5"
      },
      "define": {
        "H5-DEV": true
      }
    }  
  }
}

请求js文件这样配置

// #ifdef H5-DEV
const BASE_URL =  'http://xxxxx.com'
console.log('H5-DEV',BASE_URL)
// #endif

// #ifndef H5-DEV
const BASE_URL =   process.env.NODE_ENV =='development' ? 'http://xxx.com':'http://xxx.com'
console.log('非h5',BASE_URL)
// #endif

console.log(BASE_URL,"BASE_URL==")
export default BASE_URL

操作步骤:

点击自定义发行测试环境,没有运行到 H5-DEV

// #ifdef H5-DEV
const BASE_URL =  'http://xxxxx.com'
console.log('H5-DEV',BASE_URL)
// #endif

更多关于uni-app 自定义扩展的平台 自定义发行不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

HBuilderX -> 发行 ->自定义发行下没出现?
1、升级HBuilderX到最新版本 2、新建Hello uni-app项目,hello uni-app中有自定义的钉钉小程序平台示例,你可以参考。

更多关于uni-app 自定义扩展的平台 自定义发行不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


嗯,是版本问题

根据你的描述,问题在于自定义扩展平台的条件编译未生效。主要原因如下:

  1. 条件编译标识符命名问题:在 package.jsonuni-app.scripts 中定义的 H5-DEV 是自定义运行/发行配置的名称,但条件编译中使用的标识符需要与 define 中定义的属性名对应。你的配置中 define 定义了 "H5-DEV": true,但条件编译标识符应为 H5-DEV(注意:实际条件编译标识符会转换为全大写,但此处定义的是原始名称)。

  2. 运行方式问题:自定义运行/发行配置需要通过 HBuilderX 的“运行”或“发行”菜单选择对应配置执行,而不是直接运行默认配置。

解决方案

修改 package.json 配置,确保条件编译标识符正确:

"uni-app": {
  "scripts": {
    "h5-dev": {
      "title": "测试环境",
      "env": {
        "UNI_PLATFORM": "h5"
      },
      "define": {
        "H5_DEV": true  // 改为下划线命名,避免潜在解析问题
      }
    }  
  }
}

JS 文件中条件编译同步修改:

// #ifdef H5_DEV
const BASE_URL = 'http://xxxxx.com'
console.log('H5-DEV', BASE_URL)
// #endif

// #ifndef H5_DEV
const BASE_URL = process.env.NODE_ENV == 'development' ? 'http://xxx.com' : 'http://xxx.com'
console.log('非h5', BASE_URL)
// #endif
回到顶部