oppo/vivo/小米/华为快应用怎么区分运行环境

各家快应用文档

几家快应用区别

oppo、vivo、小米这几家的快应用开发工具都是跳转到 快应用联盟 进行下载,意思是他们都基本遵守联盟规则。

顽皮的华为:看看华为快应用开发工具下载,华为的开发工具是华为自己的,不是快应用联盟的!!

意思是:嘿嘿~不好意思了,华为自己玩,不跟联盟一起……

在本文编写时,华为快应用(开发工具版本:QuickAppIDE-V13.1.1-Win64)开发还不支持模拟器,只能真机测试或者云测试。

需求

看到这篇文章的开发者,绝对有过这种需求:

开发时候需要联调后端开发服务器,发布上线之后需要连接生产服务器!!大厂可能还会有不同的环境区分用来保证上线质量,比如测试环境,预生产环境等等。

但不管如何区分,至少开发环境和生产环境是必不可少的!!

本文代码在华为快应用真机测试通过!!其他几个平台由于无测试手机,未进行测试,开发者请先自测!

针对以上需求,如何区分开发环境和生产环境?

文章最开始的几家快应用文档,除了快应用联盟,都使用关键词【环境变量、环境、变量、ENV、正式版、开发版】进行了搜索,都没什么结果。

最后找到快应用联盟,搜索到一个 NODE_ENV 这个:

但是文档里面没介绍使用方法,如果直接在快应用js里面使用 NODE_ENV === 'development',那么不好意思编译会给你一个大大的 ERROR !!

正确使用方法

如果仔细看过编译器底层,会发现其实编译代码还是使用的webpack,那么就与nodejs有缘了。

如果你有使用 nodejs 的经验,那么一定用过 process.env.NODE_ENV 这个环境变量来区分 开发环境 和 生产环境。

那么不妨也这么使用一下:

1
2
3
let apiHost = process.env.NODE_ENV === 'development' ?
'https://dev.xxx.com' :
'https://prod.xxx.com';

很好,这次没整出幺蛾子,在开发华为快应用时正常区分出了开发版和体验版。

但是如何区分体验版和正式版?

对于华为快应用,截止文章发布,未找到任何方法区分体验版和正式版,包括询问过华为团队。

快应用联盟说 预发包NODE_ENVpre,然而华为的 体验版 却是 production,正式版也是 production,所以暂时没找到区分办法。

如果你是快应用联盟的开发者,可以使用 pre 区分 预发包

小结一下

老实说,区分运行环境,这真是一个基本需求了,但是几大官方文档都没任何体现~~~

作为苦逼的开发者,只能自己摸石头过河~~~

本文由 linx(544819896@qq.com) 创作,采用 CC BY 4.0 CN协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。本文链接为: https://blog.jijian.link/2023-11-16/quickapp-process-env/

如果您觉得文章不错,可以点击文章中的广告支持一下!