uni-app vue2 项目 条件编译在vue.config.js环境中无效,普通js可以起效 hbuilder 4.36

发布于 1周前 作者 phonegap100 来自 Uni-App

uni-app vue2 项目 条件编译在vue.config.js环境中无效,普通js可以起效 hbuilder 4.36

示例代码:

console.log(process.env.UNI_PLATFORM);
// #ifdef WEB
console.log("当前环境:H5");
const { codeInspectorPlugin } = require("code-inspector-plugin");
//  #endif

操作步骤:

console.log(process.env.UNI_PLATFORM);
// #ifdef WEB
console.log("当前环境:H5");
const { codeInspectorPlugin } = require("code-inspector-plugin");
//  #endif

预期结果:

此代码在抖音小程序不编译

实际结果:

此代码在抖音小程序编译了

bug描述:

【报Bug】vue2 项目 条件编译在vue.config.js环境中无效,普通js可以起效。 hbuilder 4.36

项目信息 描述
产品分类 uniapp/小程序/字节跳动
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win11
HBuilderX类型 正式
HBuilderX版本号 4.36
第三方开发者工具版本号 最新
基础库版本号 最新
项目创建方式 HBuilderX

Image 1 Image 2


3 回复

这个js 是入口启动函数,不参与编译,用其他方式判断,比如 process.env 找一找关键词
用下面这个: console.log(111, process.env.UNI_PLATFORM);


编译vue.config.js的时候uni还没准备好吧

uni-app 项目中,条件编译通常用于区分不同平台(如H5、小程序、App等)的代码实现。如果你发现在 vue.config.js 文件中配置的条件编译无效,但普通的 JavaScript 文件中条件编译可以起效,这可能是由于 vue.config.js 文件本身的特性以及 uni-app 的构建流程决定的。

vue.config.js 是 Vue CLI 的配置文件,主要用于配置 Vue 项目的构建和开发环境,而 uni-app 则是基于 Vue 的一个多端开发框架,有自己的一套构建和编译流程。在 uni-app 中,条件编译主要通过特定的注释语法来实现,而不是通过修改 vue.config.js

以下是一个在 uni-app 中使用条件编译的示例,展示了如何在不同平台下编写不同的代码:

1. 在 Vue 组件中使用条件编译

<template>
  <view>
    <!-- #ifdef H5 -->
    <text>这是H5平台的代码</text>
    <!-- #endif -->

    <!-- #ifdef APP-PLUS -->
    <text>这是App平台的代码</text>
    <!-- #endif -->

    <!-- #ifdef MP-WEIXIN -->
    <text>这是微信小程序的代码</text>
    <!-- #endif -->
  </view>
</template>

<script>
export default {
  methods: {
    // 条件编译的JS代码
    /* #ifdef H5 */
    handleH5() {
      console.log('H5平台的方法');
    },
    /* #endif */

    /* #ifdef APP-PLUS */
    handleApp() {
      console.log('App平台的方法');
    },
    /* #endif */
  },
  mounted() {
    /* #ifdef H5 */
    this.handleH5();
    /* #endif */

    /* #ifdef APP-PLUS */
    this.handleApp();
    /* #endif */
  }
}
</script>

2. 在普通 JavaScript 文件中使用条件编译

// #ifdef H5
console.log('当前环境是H5');
// #endif

// #ifdef APP-PLUS
console.log('当前环境是App');
// #endif

// #ifdef MP-WEIXIN
console.log('当前环境是微信小程序');
// #endif

uni-app 中,条件编译是通过特殊的注释语法来实现的,这些注释会被 uni-app 的编译器识别并处理。因此,你不需要在 vue.config.js 中进行条件编译的配置。

如果你的条件编译在 vue.config.js 中无效,建议检查你的 uni-app 项目配置和条件编译语法是否正确,并确保你是在 uni-app 支持的范围内使用条件编译。

回到顶部