條件編譯是用特殊的注釋作為標記,在編譯時根據(jù)這些特殊的注釋,將注釋里面的代碼編譯到不同平臺。
- 寫法:以
#ifdef或#ifndef加%PLATFORM%開頭,以#endif結(jié)尾。
#ifdef:if defined // 僅在某平臺存在
#ifndef:if not defined // 除了某平臺均存在
%PLATFORM% // 平臺名稱
-
%PLATFORM% 可取值如下:
常用VUE3APP-PLUSH5MP-WEIXIN
| 值 | 生效條件 |
|---|---|
| VUE3 | HBuilderX 3.2.0+ 詳情 |
| APP-PLUS | App |
| APP-PLUS-NVUE或APP-NVUE | App nvue |
| H5 | H5 |
| MP-WEIXIN | 微信小程序 |
| MP-ALIPAY | 支付寶小程序 |
| MP-BAIDU | 百度小程序 |
| MP-TOUTIAO | 字節(jié)跳動小程序 |
| MP-QQ | QQ小程序 |
| MP-KUAISHOU | 快手小程序 |
| MP-360 | 360小程序 |
| MP | 微信小程序/支付寶小程序/百度小程序/字節(jié)跳動小程序/QQ小程序/360小程序 |
| QUICKAPP-WEBVIEW | 快應用通用(包含聯(lián)盟、華為) |
| QUICKAPP-WEBVIEW-UNION | 快應用聯(lián)盟 |
| QUICKAPP-WEBVIEW-HUAWEI | 快應用華為 |
- 支持的文件
.vue
.js
.css
pages.json
各預編譯語言文件,如:.scss、.less、.stylus、.ts、.pug
注意:
- 條件編譯是利用注釋實現(xiàn)的,在不同語法里注釋寫法不一樣,js使用 // 注釋、css 使用 /* 注釋 */、vue/nvue 模板里使用 ;
- 條件編譯APP-PLUS包含APP-NVUE和APP-VUE,APP-PLUS-NVUE和APP-NVUE沒什么區(qū)別,為了簡寫后面出了APP-NVUE ;
- 使用條件編譯請保證編譯前和編譯后文件的正確性,比如json文件中不能有多余的逗號;
- VUE3 需要在項目的 manifest.json 文件根節(jié)點配置 "vueVersion" : "3"
參考官網(wǎng) https://uniapp.dcloud.io/platform