热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UniApp自定义条件编译详细使用流程为什么国内的uniapp一直没人讨论呢

本文主要介绍关于uniapp,条件编译的知识点,对【UniApp自定义条件编译详细使用流程】和【为什么国内的uniapp一直没人讨论呢】有兴趣的朋友可以看下由【卡尔特斯】投稿的技术文章,希望该技术和

本文主要介绍关于uniapp,条件编译的知识点,对【UniApp 自定义条件编译详细使用流程】和【为什么国内的uniapp一直没人讨论呢】有兴趣的朋友可以看下由【卡尔特斯】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的UniApp相关技术问题。

为什么国内的uniapp一直没人讨论呢

一、简介

官方自定义条件编译文档。

举例:开发一个 wx 小程序,但是这小程序需要支持打包多种 UI 风格,如果用 if 或者现有的条件编译肯定是不能满足的,这时候就需要以 wx 小程序基准平台,在扩展一个新的 子平台 进行条件编译,但是它还是属于 基准平台,只是在这个 基准平台 上,在多了一层独立条件编译,专门用来打包或开发这个 UI 风格。

自定义条件编译扩展需放到 package.json 文件中,格式如下:

// 拷贝代码后去掉注释,不能包含注释,放到 package.json 中即可,推荐文件底部
"uni-app": {
   
        // 扩展配置
        "scripts": {
   
                // 自定义编译平台配置,可通过 cli 方式调用
                "custom-platform": {
   
                        // 会显示在 HBuilderX 中的 <运行/发行> 菜单中
                        "title": "自定义扩展名称", 
                        // 运行到的目标浏览器,仅当 UNI_PLATFORM 为 h5 时有效
                        "browser": "",
                        // 环境变量
                        "env": {
   
                                // 基准平台
                                "UNI_PLATFORM": "",
                                // ... 其他自定义环境变量
                                "MY_TEST": ""
                         },
                        // 自定义条件编译
                        "define": {
   
                                // 自定义条件编译常量,建议为大写,代码中也是以此代码作为条件编译
                                "CUSTOM-CONST": true
                        }
                }
        }    
}

注意:只能扩展 web小程序 平台,不能扩展 app 打包。并且扩展小程序平台时只能基于指定的 基准平台 扩展 子平台,不能扩展 基准平台

UNI_PLATFORM 仅支持填写 uni-app 默认支持的基准平台,目前仅限如下枚举值:h5mp-weixinmp-alipaymp-baidump-toutiaomp-qq

browser 仅在 UNI_PLATFORMh5 时有效,目前仅限如下枚举值:chromefirefoxieedgesafarihbuilderx

package.json 文件中不允许出现注释,否则扩展配置无效。

vue-cli 需更新到最新版(能创建项目即可,不用纠结),HBuilderX 需升级到 2.1.6+ 版本。

二、操作

按官方案例,如下是一个 自定义钉钉小程序MP-DINGTALK)的 package.json 示例配置(拷贝代码记得去掉注释):

"uni-app": {
   
        "scripts": {
   
                "mp-dingtalk": {
    
                        "title":"钉钉小程序", 
                        "env": {
    
                                "UNI_PLATFORM": "mp-alipay" 
                        },
                        "define": {
    
                                "MP-DINGTALK": true 
                        }
                }
        }
}

也可以将上面 自定义钉钉小程序MP-DINGTALK)理解为:在 支付宝小程序 基础上,增加了一个新 UI 模板,到时候只需要条件编译运行或打包就能得到一个 支付宝小程序,并且还是 钉钉小程序 风格的小程序,或者其他风格的小程序,可以自行更具情况添加。

在项目文件中使用

// #ifdef MP
console.log('小程序平台通用代码(含钉钉)')
// #endif
// #ifdef MP-ALIPAY
console.log('支付宝平台通用代码(含钉钉)')
// #endif
// #ifdef MP-DINGTALK
console.log('钉钉平台特有代码')
// #endif

(二选一即可)使用 命令行 运行或发布项目

# 运行项目
$ npm run dev:custom mp-dingtalk

# 发布项目
$ npm run build:custom mp-dingtalk

请添加图片描述

(二选一即可)也可以使用 HBuilderX 运行或发布项目

请添加图片描述

请添加图片描述

编译完成后,会得到对应平台的代码包,使用对应平台的开发工具运行即可,当前自定义编译的 钉钉小程序 是以 支付宝小程序 为基准的,其实打包出来就是一个 支付宝小程序,所以用哪个开发工具就不用说了。

UniApp 自定义条件编译详细使用流程 为什么国内的uniapp一直没人讨论呢

自定义编译到这就完了!其他的案例在 官方自定义条件编译文档 中还有,只要理解意思后都一样。

本文《UniApp 自定义条件编译详细使用流程》版权归卡尔特斯所有,引用UniApp 自定义条件编译详细使用流程需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • Java环境中Selenium Chrome驱动在大规模Web应用扩展时的性能限制分析 ... [详细]
  • 本文探讨了如何通过检测浏览器类型来动态加载特定的npm包,从而优化前端性能。具体而言,仅在用户使用Edge浏览器时加载相关包,以提升页面加载速度和整体用户体验。此外,文章还介绍了实现这一目标的技术细节和最佳实践,包括使用User-Agent字符串进行浏览器识别、条件加载策略以及性能监控方法。 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 本文介绍了使用 Python 编程语言高效抓取微博文本和动态网页图像数据的方法。通过详细的示例代码,展示了如何利用爬虫技术获取微博内容和动态图片,为数据采集和分析提供了实用的技术支持。对于对网络数据抓取感兴趣的读者,本文具有较高的参考价值。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 近期,微信公众平台上的HTML5游戏引起了广泛讨论,预示着HTML5游戏将迎来新的发展机遇。磊友科技的赵霏,作为一名HTML5技术的倡导者,分享了他在微信平台上开发HTML5游戏的经验和见解。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
  • Vue应用预渲染技术详解与实践 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
  • 软件测试工程师必备:全面解析Web应用的浏览器兼容性测试方法与工具
    随着市场上浏览器种类的不断增多,特别是在平板和移动设备上的普及,确保网站在各种浏览器中都能正常运行变得尤为重要。本文将深入探讨Web应用的浏览器兼容性测试方法与工具,帮助软件测试工程师全面掌握这一关键技能,以提高应用的用户体验和可靠性。 ... [详细]
  • 可转债数据智能抓取与分析平台优化
    本项目旨在优化可转债数据的智能抓取与分析平台。通过爬取集思录上的可转债信息(排除已发布赎回的债券),并结合安道全教授提出的三条安全线投资策略,新增了建仓线、加仓线和重仓线,以提供更精准的投资建议。 ... [详细]
  • 在前一篇文章中,我们介绍了如何使用Requests库发送GET请求。本文将深入探讨如何通过Requests库发送POST请求,包括参数格式、请求封装等关键技巧,并通过“历史上的今天”API实例进行详细说明。 ... [详细]
author-avatar
117061771_af0556
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有