uni-app vue.config.js条件编译不生效
uni-app vue.config.js条件编译不生效
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | win10 | HBuilderX |
操作步骤:
- 必现
预期结果:
- 控制台只打印 “能进来?wx”字样
实际结果:
- 控制台展示打印信息:
[HBuilder] 10:53:02.880 能进来?app-plus
[HBuilder] 10:53:02.880 能进来?mx
[HBuilder] 10:53:02.884 能进来?H5
[HBuilder] 10:53:02.885 能进来?wx
bug描述:
- 在vue.config.js中使用条件编译不生效,如图,在发行小程序时,h5和app-plus以及自定义的h5-mx都运行到了
更多关于uni-app vue.config.js条件编译不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
不支持条件编译,使用process.env.UNI_PLATFORM判断
更多关于uni-app vue.config.js条件编译不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在uni-app中,vue.config.js的条件编译需要通过process.env.UNI_PLATFORM来判断平台,而不是直接使用#ifdef语法。这是因为vue.config.js是webpack配置文件,不是vue模板文件。
正确的写法应该是:
if (process.env.UNI_PLATFORM === 'mp-weixin') {
console.log('能进来?wx')
}
原因分析:
- #ifdef等条件编译语法只在.vue/.js/.css等模板文件中生效
- vue.config.js是webpack配置文件,需要使用node环境变量判断
- 发行时process.env.UNI_PLATFORM会根据不同平台自动设置值
建议修改为:
module.exports = {
configureWebpack: {
plugins: [
new webpack.DefinePlugin({
'process.env': {
UNI_PLATFORM: JSON.stringify(process.env.UNI_PLATFORM)
}
})
]
}
}