uni-app CLI 创建的项目使用 hbx 的运行和发行自定义编译平台配置无效
uni-app CLI 创建的项目使用 hbx 的运行和发行自定义编译平台配置无效
我的项目是通过 vue-cli 创建的,因为使用uniCloud必须用HBX的运行和发行才能连接,不能使用命令行运行调试及打包发行,然后就发现运行出来的环境和命令行的有区别
| 信息 | 描述 |
|---|---|
| 开发环境 | vue-cli |
| 版本号 | 未提及 |
| 项目创建方式 | vue-cli |
package.json自定义编译平台配置
{
"uni-app": {
"scripts": {
"h5-weixin": {
"title": "微信公众号",
"BROWSER": "Chrome",
"env": {
"UNI_PLATFORM": "h5"
},
"define": {
"H5-WEIXIN": true
}
}
}
}
}
页面代码
#ifdef
<!-- #ifdef H5 -->
H5
<!-- #endif -->
<!-- #ifdef H5-WEIXIN -->
H5-WEIXIN
<!-- #endif -->
#endif
使用命令行运行npm run dev:custom weixin结果是

使用HBX菜单栏的【运行】->【微信公众号】结果如下

更多关于uni-app CLI 创建的项目使用 hbx 的运行和发行自定义编译平台配置无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
更多关于uni-app CLI 创建的项目使用 hbx 的运行和发行自定义编译平台配置无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
不一样的,我是hbx和cli项目的区别(发行和运行都存在问题),他那边只是打包发行才出问题
命令行发行有问题,还没解决吗,楼主有方案了嘛
根据你的描述,这是由项目创建方式导致的配置差异问题。
核心原因:
通过 vue-cli 创建的 uni-app 项目,其编译配置主要依赖 vue.config.js 中的 uni 配置项。而通过 HBuilderX(HBX)可视化界面创建的项目,其编译配置信息存储在项目根目录的 manifest.json 文件中。
问题分析:
- 你在
package.json中定义的"uni-app"配置,对于 vue-cli 创建的项目是无效的。这个配置方式主要适用于 HBX 创建的项目。 - 当你使用命令行
npm run dev:custom h5-weixin时,它读取的是vue.config.js中的配置(如果存在),或者使用了默认的 H5 配置,因此条件编译H5-WEIXIN未生效,只显示了H5。 - 当你使用 HBX 菜单【运行】->【微信公众号】时,HBX 会尝试读取
package.json中的"uni-app"配置来生成运行菜单项。但由于你的项目是 vue-cli 创建的,HBX 可能无法正确识别或应用此配置,导致运行环境仍然是普通的 H5 环境,所以也只显示了H5。
解决方案:
你需要将自定义编译平台的配置转移到 vue.config.js 文件中。
- 在项目根目录下找到或创建
vue.config.js文件。 - 在其中配置自定义平台,示例如下:
const path = require('path');
module.exports = {
// 配置 uni-app 插件
pluginOptions: {
// 传递给 @dcloudio/vue-cli-plugin-uni 的配置项
uni: {
// 自定义条件编译平台配置
customArguments: {
// 定义一个名为 'h5-weixin' 的平台
'h5-weixin': {
// 平台类型,这里基于 H5
platform: 'h5',
// 自定义条件编译常量,对应代码中的 #ifdef H5-WEIXIN
define: {
'H5-WEIXIN': true
}
}
}
}
},
// 其他 vue-cli 配置...
};

