紫洋
紫洋
  • 发布:2020-08-11 18:33
  • 更新:2020-12-16 16:29
  • 阅读:838

【报Bug】自定义编译模块基准平台设置为H5后,条件编译h5会进入

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.14.6 (18G3020)

HBuilderX类型: 正式

HBuilderX版本号: 2.8.4

浏览器平台: Chrome

浏览器版本: 83.0.4103.116(正式版本) (64 位)

项目创建方式: HBuilderX

示例代码:

"uni-app": {
"scripts": {
"pc-platform": {
"title": "pc平台",
"BROWSER": "Chrome",
"env": {
"UNI_PLATFORM": "h5"
},
"define": {
"PC-WEB": true
}
}
}
}

操作步骤:

//#ifdef PC-WEB
此处进入
// #endif

//#ifdef H5
这里还会进入一次,应该不进入才对
// #endif

预期结果:

//#ifdef PC-WEB
此处进入
// #endif

//#ifdef H5
这里还会进入一次,应该不进入才对
// #endif

实际结果:

//#ifdef PC-WEB
此处进入
// #endif

//#ifdef H5
这里还会进入一次,应该不进入才对
// #endif

bug描述:

//#ifdef PC-WEB
此处进入
// #endif

//#ifdef H5
这里还会进入一次,应该不进入才对
// #endif

2020-08-11 18:33 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

没毛病,H5 相当于是父类,会进入

  • 紫洋 (作者)

    如果这样的话会不会就违背了平台条件编译的原意?既然是自定义了平台,那理应就是区分出来,那//#if等对自定义平台就没有意义了呢?不知道我这么理解对不对

    2020-08-12 10:11

  • DCloud_UNI_GSQ

    回复 紫洋: 非也,就好比中国男人也属于中国人。

    2020-08-12 12:43

  • DCloud_UNI_GSQ

    回复 紫洋: 而与#ifdef PC-WEB相反的不是#ifdef H5而是#ifndef PC-WEB

    2020-08-12 12:43

  • 紫洋 (作者)

    回复 DCloud_UNI_GSQ: 你确定你这种理解OK?大致都能猜到内部基于h5底层做了相应判断实现而已,外围自定义不好去做具体区分而已不就结了,你自己看看你自己说的能说得过去么。实质不是真的能自定义平台,自定义平台是有一定区分的。当然,只是可以变相去实现条件编译判断而已。服你的辩解

    2020-09-17 18:10

1***@qq.com

1***@qq.com - 1个人

会不会是因为pc可以开H5模式, 所以H5也生效, 但是你不打开开发者模式, 就不生效?

该问题目前已经被锁定, 无法添加新回复