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结果是

image

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

image


更多关于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 文件中。

问题分析:

  1. 你在 package.json 中定义的 "uni-app" 配置,对于 vue-cli 创建的项目是无效的。这个配置方式主要适用于 HBX 创建的项目。
  2. 当你使用命令行 npm run dev:custom h5-weixin 时,它读取的是 vue.config.js 中的配置(如果存在),或者使用了默认的 H5 配置,因此条件编译 H5-WEIXIN 未生效,只显示了 H5
  3. 当你使用 HBX 菜单【运行】->【微信公众号】时,HBX 会尝试读取 package.json 中的 "uni-app" 配置来生成运行菜单项。但由于你的项目是 vue-cli 创建的,HBX 可能无法正确识别或应用此配置,导致运行环境仍然是普通的 H5 环境,所以也只显示了 H5

解决方案: 你需要将自定义编译平台的配置转移到 vue.config.js 文件中。

  1. 在项目根目录下找到或创建 vue.config.js 文件。
  2. 在其中配置自定义平台,示例如下:
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 配置...
};
回到顶部