首页 > 其他分享 >uni-app 条件编译

uni-app 条件编译

时间:2022-09-07 10:25:47浏览次数:104  
标签:app 平台 程序 编译 MP ifdef uni APP

条件编译可以使一套代码,在不同平台下执行不同的部份。比如在APP内执行A,在小程序内执行B。

条件编译可以出现在:template、style、script 三个模块内。在三个模块内编译代码也不一样。

比如在template内,输入ifdef 按回车,代码如下:

<!-- #ifdef APP-PLUS -->
在APP平台下执行这部份
<!-- #endif -->

比如在style内,输入ifdef按回车,代码如下:

/* #ifdef APP-PLUS */
.appstyle{
}
/* #endif */

比如在script内,输入ifdef按回车,代码如下: 

// #ifdef APP-PLUS
console.log('APP下执行');
// #endif

 

一、其中APP-PLUS表示APP平台。如果想在微信小程序中编译,只需要将APP-PLUS更改为MP-WEIXIN

二、条件编辑还支持 || 语法(不支持 && 语法)。 ||表示在多个平台,比如:// #ifdef APP-PLUS || MP-WEIXIN 表示在APP或微信小程序平台下编译。

三、除了#ifdef 表示仅在某平台下编辑,还有 Ifndef 表示除了某平台不编译,其它平台下都编译

四、各平台值与对应的平台如下:

生效条件

VUE3

HBuilderX 3.2.0+ 详情(opens new window)

APP-PLUS

App

APP-PLUS-NVUE或APP-NVUE

App nvue

H5

H5

MP-WEIXIN

微信小程序

MP-ALIPAY

支付宝小程序

MP-BAIDU

百度小程序

MP-TOUTIAO

字节跳动小程序

MP-LARK

飞书小程序

MP-QQ

QQ小程序

MP-KUAISHOU

快手小程序

MP-JD

京东小程序

MP-360

360小程序

MP

微信小程序/支付宝小程序/百度小程序/字节跳动小程序/飞书小程序/QQ小程序/360小程序

QUICKAPP-WEBVIEW

快应用通用(包含联盟、华为)

QUICKAPP-WEBVIEW-UNION

快应用联盟

QUICKAPP-WEBVIEW-HUAWEI

快应用华为

 

五、pages.json 中也可以加入条件编译,比如:

// #ifdef APP-PLUS
{
  "path": "pages/api/speech/speech",
  "style": {
       "navigationBarTitleText" : "语音识别"
   }
}
// #endif

 

六、static目录编译

static文件夹内存储数据文件的,默认情况下它会在APP打包时整体打包进去。

我们可以将不同平台下的静态文件存储在不同文件夹内(名称名同编译平台名的小写字母),这样打包时,就不会把微信小程序的静态文件也打包到app内。比如:

/static
/static/h5 存储h5平台下的静态文件
/static/app 存储app平台下的静态文件

 

七、整体目录条件编译

如果想把各平台的页面文件更彻底的分开,也可以在uni-app项目根目录创建platforms目录,然后在下面进一步创建app-plus、mp-weixin等子目录,存放不同平台的文件。
platforms目录下只支持放置页面文件(即页面vue文件),如果需要对其他资源条件编译建议使用static 目录的条件编译

标签:app,平台,程序,编译,MP,ifdef,uni,APP
From: https://www.cnblogs.com/wm218/p/16664297.html

相关文章

  • Mac 下反编译Android APK
    准备工作:安装ApkTool、dex2jar、JD-GUI安装ApkTool1、下载ApkTool。大家可以从 https://ibotpeaches.github.io/Apktool/install/ 上下载ApkTool2、安装ApkTool(1)将......
  • uniapp请求到数据却渲染不到页面
    是this指向问题,如果success写成普通函数的形式,那么this指向success自身,应该指向对象自身的uni.request({url:‘http://localhost:3000/api/search,method:‘get......
  • 2022-09-07 wx.getLocation暂未配置在app.json且没有权限
    前言:昨晚提交了小程序审核,当即就被驳回了,原因是:wx.getLocation接口无权限,且没有在app.json中配置注:我的是wepy小程序解决方案:找到app.wpy,在里面添加代码如下:required......
  • 使用二进制编译安装lamp (centos)
    #1.Mysql-5.6.40软件包存放目录:```/usr/local/src/```###1.1安装mysql```shellcd/usr/local/src/#1.切换到软件包目录wgethttp://.....#2.获取php5.6.40源码包......
  • UNI-APP代码规范集合
    一、路径规范:建议统一采用以@开头的路径。比如:1import$stringfrom'@/common/js/string.js'2@import'./common/uni.css';3<imageclass="logo"src="@/static/l......
  • UNI-APP终端及相关命令
    UNI-APP编辑软件HBuilderX自带终端,可以执行npm等命令。一、如何打开终端:  二、常用终端命令:1、查看当前项目所有已安装包或插件npm list -g--dept0 2、......
  • 在UNI-APP创建VUE3项目时配置VUE版本
    在UNI-APP创建项目时,默认是VUE2版本。如果直接使用VUE3代码时会出错。所以第一步就要求设置VUE版本,操作如下:打开根目录下/manifest.json文件,找到“基础配置”-->"Vue......
  • 如何让你的 Todo App 脱颖而出?
    如何让你的TodoApp脱颖而出?您可以开始使用的最常见的初学者项目之一是使用技术堆栈创建一个待办事项列表应用程序。但是,这里似乎没有什么可探索的。好吧,总有前进和探索......
  • 使用 Azure 应用服务部署 React App
    使用Azure应用服务部署ReactApp大家好,今天我们将讨论如何将生产就绪的React应用程序部署到Azure云。对于今天的任务,如果您没有帐户,我们需要创建一个azure帐户和......
  • Unity2d SunnyLand (一) 开发环境 + Tilemap
    一、开发环境.net6.0+.netframework4.7.1dev +vscode +unity2022.1.15将vscode设置为默认脚本编辑器  二、Tilemap1.导入资源  2.设置属性 ......