热门标签 | 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版权协议。


推荐阅读
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 2022年2月 微信小程序 app.json 配置详解:启用调试模式
    本文将详细介绍如何在微信小程序的 app.json 文件中启用调试模式(debug),并通过实际案例展示其配置方法和应用场景。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 了解如何在VSCode中通过配置文件自定义调试控制台的名称。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 深入浅出 webpack 系列(二):实现 PostCSS 代码的编译与优化
    在前一篇文章中,我们探讨了如何通过基础配置使 Webpack 完成 ES6 代码的编译。本文将深入讲解如何利用 Webpack 实现 PostCSS 代码的编译与优化,包括配置相关插件和加载器,以提升开发效率和代码质量。我们将详细介绍每个步骤,并提供实用示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • Swoole加密机制的安全性分析与破解可能性探讨
    本文深入分析了Swoole框架的加密机制,探讨了其在实际应用中的安全性,并评估了潜在的破解可能性。研究结果表明,尽管Swoole的加密算法在大多数情况下能够提供有效的安全保护,但在特定场景下仍存在被攻击的风险。文章还提出了一些改进措施,以增强系统的整体安全性。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • 利用爬虫技术抓取数据,结合Fiddler与Postman在Chrome中的应用优化提交流程
    本文探讨了如何利用爬虫技术抓取目标网站的数据,并结合Fiddler和Postman工具在Chrome浏览器中的应用,优化数据提交流程。通过详细的抓包分析和模拟提交,有效提升了数据抓取的效率和准确性。此外,文章还介绍了如何使用这些工具进行调试和优化,为开发者提供了实用的操作指南。 ... [详细]
author-avatar
欣仪威侑扬芸_782
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有