cli项目在安卓APP下node_modules中的代码条件编译无效
cli项目在安卓APP下node_modules中的代码条件编译无效
信息类别 | 详细信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC版本号 | windows 10 |
手机系统 | Android |
手机版本 | Android 13 |
手机厂商 | 小米 |
手机机型 | Redmi Note 11 5G |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | CLI |
CLI版本号 | 2.0.2-4040520250103001 |
bug描述:
我是使用npm安装的"uview-ui": “1.8.8”,在使用u-navbar组件时,发现在安卓app下条件编译无效,把对应的代码复制到src目录的components组件之后又好了
初步怀疑:安卓node_modules下的代码,js部分条件编译失效
HBuilder X 4.45
@dcloudio/uni-app: “2.0.2-4040520250103001”
示例代码:
let menuButtonInfo = {};
// 如果是小程序,获取右上角胶囊的尺寸信息,避免导航栏右侧内容与胶囊重叠(支付宝小程序非本API,尚未兼容)
// #ifdef MP-WEIXIN || MP-BAIDU || MP-TOUTIAO || MP-QQ
menuButtonInfo = uni.getMenuButtonBoundingClientRect();
// #endif
操作步骤:
运行到手机,安卓
预期结果:
条件编译有效
实际结果:
条件编译无效
6 回复
看截图是有 api 报错。提供一个复现工程吧,先去掉运行报错。
已经上传附件,复现工程代码,安卓条件编译无效
ok 我看下
回复 DCloud_UNI_OttoJi: 有结果没,啥时候能解决
@DCloud_Android_ST @DCloud_Android_zl @DCloud_Android_THB @DCloud_UNI_OttoJi @DCloud-HBuilderX团队
node_modules目录下,APP条件编译无效,100%复现,求大佬们看一下,已经上传代码
这是一个已知的uni-app在Android平台下的编译问题。当代码位于node_modules目录时,条件编译可能会失效。这是因为uni-app编译器对node_modules中的文件处理方式与项目源码不同。
解决方案:
- 将需要条件编译的组件从node_modules复制到项目src目录(如你已尝试的方法)
- 或者修改构建配置,在vue.config.js中添加如下配置:
module.exports = {
transpileDependencies: ['uview-ui']
}