uni-app条件编译

// #ifdef %PLATFORM%
   这里的代码只在该平台下进行编译
// #endif
#ifdef :      if defined  仅在某个平台编译
#ifndef :     if not defined  在除里该平台的其他编译
#endif :      end if 结束条件编译
%PLATFORM%     需要编译的平台

uni-app支持的各个平台

平台
APP-PLUS 5+App
APP-PLUS-NVUE 5+App nvue
H5 H5
MP-WEIXIN 微信小程序
MP-ALIPAY 支付宝小程序
MP-BAIDU 百度小程序
MP-TOUTIAO 头条小程序
MP-QQ QQ小程序
MP 微信小程序/支付宝小程序/百度小程序/头条小程序/QQ小程序

支持的文件

  • .vue
  • .js
  • .css
  • pages.json
  • 各预编译语言文件,如:.scss、.less、.stylus、.ts、.pug

注意: 条件编译是利用注释实现的,在不同语法里注释写法不一样,js使用 // 注释、css 使用 /* 注释 */、vue/nvue 模板里使用 ;








结果:
uni-app条件编译_第1张图片

uni-app条件编译_第2张图片

static 目录的条件编译:

在不同平台,引用的静态资源可能也存在差异,通过 static 的的条件编译可以解决此问题,static 目录下新建不同平台的专有目录(目录名称同 %PLATFORM% 值域,但字母均为小写),专有目录下的静态资源只有在特定平台才会编译进去。

如以下目录结构,a.png 只有在微信小程序平台才会编译进去,b.png 在所有平台都会被编译。

┌─static                
│  ├─mp-weixin
│  │  └─a.png     
│  └─b.png
├─main.js        
├─App.vue      
├─manifest.json 
└─pages.json  

整体目录条件编译:

如果想把各平台的页面文件更彻底的分开,也可以在uni-app项目根目录创建platforms目录,然后在下面进一步创建APP-PLUS、MP-WEIXIN等子目录,存放不同平台的文件。

你可能感兴趣的:(uni-app条件编译)