【微信小程序篇】- 多环境(版本)配置

最近自己在尝试使用AIGC写一个小程序,页面、样式、包括交互函数AIGC都能够帮我完成(不过这里有一点问题AIGC的上下文关联性还是有限制,会经常出现对于需求理解跑偏情况,需要不断的重复强调,并纠正错误,才能得到你想要的内容)。

因为最近某些原因,所处的环境网络没办法科学上网,剩下的网络交互需要自己完成。

多环境(版本)配置

我们都知道小程序开发主要有三个版本:开发版,体验版,正式版;我们如何让三个环境访问的环境信息不同呢?这个就需要进行多环境(版本)配置信息了。

1.多环境(版本)配置封装

最近在网上看到了很多人做多版本封装的时候,用到了这样的配置:
env.config.js

const envConf = {// 开发版-本地环境develop: {mode: 'dev',DEBUG: false,VCONSOLE: true,appid: 'appid',APP_BASE_URL: 'API地址',},// 体验版-测试环境trial: {mode: 'test',DEBUG: false,VCONSOLE: false,appid: 'appid',VUE_APP_BASE_URL: 'API地址',},// 正式版-正式环境release: {mode: 'prod',DEBUG: false,VCONSOLE: false,appid: 'appid',VUE_APP_BASE_URL: 'API地址',}
}
module.exports = {env: envConf[__wxConfig.envVersion]
}

2.配置需要注意的问题

我看到这里对于__wxConfig这个对象有点不太了解,就习惯性的把配置改为:
env.config.js

const envConf = {// 开发版-本地环境develop: {mode: 'dev',DEBUG: false,VCONSOLE: true,appid: 'appid',APP_BASE_URL: 'API地址',},// 体验版-测试环境test: {mode: 'test',DEBUG: false,VCONSOLE: false,appid: 'appid',APP_BASE_URL: 'API地址',},// 正式版-正式环境prod: {mode: 'prod',DEBUG: false,VCONSOLE: false,appid: 'appid',APP_BASE_URL: 'API地址',}
}
module.exports = {env: envConf[__wxConfig.envVersion]
}

通过下面的方式使用:

env.env.属性名

在把小程序代码发布到体验版的时候,我通过扫体验版的二维码,发现微信小程序的页面数据都没有加载出来,打开调试模式,发现抛出了一下错误:


Error during evaluating file "pages/***/***.js"
undefined is not an object (evaluating 't.default.env.APP_BASE_URL')

这才发现,获取APP_BASE_URL之前,env是undefined,这个时候感觉应该是__wxConfig.envVersion的值在envConf字典中没有,在微信小程序开发社区搜索了__wxConfig.envVersion,发现了这篇文章,文章中说明了__wxConfig.envVersion返回的值有哪些:

其中的envVersion为运行环境,有以下几个值
envVersion: ‘develop’, //开发版
envVersion: ‘trial’, //体验版
envVersion: ‘release’, //正式版
其中的platform为运行的平台
有Android ios devtools 等
之前一直不知道微信小程序可以用__wxConfig.envVersion区分小程序体验版,开发板,正式版
目前在官方文档没有查到相关资料,但是亲测可用
envVersion 类型为字符串
envVersion: ‘develop’, //开发版
envVersion: ‘trial’, //体验版
envVersion: ‘release’, //正式版

我把配置改了回去:
env.config.js

const envConf = {// 开发版-本地环境develop: {mode: 'dev',DEBUG: false,VCONSOLE: true,appid: 'appid',APP_BASE_URL: 'API地址',},// 体验版-测试环境trial: {mode: 'test',DEBUG: false,VCONSOLE: false,appid: 'appid',VUE_APP_BASE_URL: 'API地址',},// 正式版-正式环境release: {mode: 'prod',DEBUG: false,VCONSOLE: false,appid: 'appid',VUE_APP_BASE_URL: 'API地址',}
}
module.exports = {env: envConf[__wxConfig.envVersion]
}

3.微信小程序官方提供获取环境函数

我在想,__wxConfig.envVersion毕竟不是官方提供的,想看看官方是否提供获取小程序环境的函数,发现还真有:wx.getAccountInfoSync()
具体函数返回的内容,大家可以到官方函数地址自己详细阅读。
修改配置:
env.config.js

const envConf = {// 开发版-本地环境develop: {mode: 'dev',DEBUG: false,VCONSOLE: true,appid: 'wx07a393f798543df5',VUE_APP_BASE_URL: 'https://www.a1sck.com/jlimei',},// 体验版-测试环境trial: {mode: 'test',DEBUG: false,VCONSOLE: false,appid: 'wx07a393f798543df5',VUE_APP_BASE_URL: 'https://www.a1sck.com/jlimei',},// 正式版-正式环境release: {mode: 'prod',DEBUG: false,VCONSOLE: false,appid: 'wx07a393f798543df5',VUE_APP_BASE_URL: 'https://www.a1sck.com/jlimei',}
}
module.exports = {env: envConf[wx.getAccountInfoSync().miniProgram.envVersion]
}

OK,大功告成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/58771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python的pymysql模块与MySQL数据库的互动:基础与实例

Python的pymysql模块与MySQL数据库的互动:基础与实例 一、连接数据库二、创建游标三、执行SQL命令四、关闭连接 在Python的世界里,操作MySQL数据库最常用的库就是pymysql。 pymysql是一个灵活且易于使用的库,它允许我们以Python的方式操作MyS…

Bean 生命周期

Bean 生命周期 一、Bean 实例化的基本流程 Spring容器在进行初始化时,会将xml配置的的信息封装成一个BeanDefifinition对象,所有的BeanDefifinition存储到一个名为beanDefifinitionMap的Map集合中去,Spring框架在对该Map进行遍历&#xff0…

Debian系统上通过NFS挂载远程服务器硬盘

步骤 1:配置远程服务器 在拥有硬盘内容的远程服务器上,进行以下配置: 安装NFS服务器软件: sudo apt-get update sudo apt-get install nfs-kernel-server编辑NFS服务器配置文件 /etc/exports,添加需要共享的目录及其权…

分部署存储Ceph

文章目录 Ceph一.deploy-ceph部署1.系统环境初始化1.1 修改主机名,DNS解析1.2 时间同步1.3 配置apt基础源与ceph源1.4关闭selinux与防火墙1.5 创建 ceph 集群部署用户cephadmin1.6分发密钥 2. ceph部署2.1 安装ceph 部署工具2.2 初始化 mon 节点2.3 安装ceph-mon服务…

Jmeter性能综合实战 —— 签到及批量签到

提取性能测试的三个方面:核心、高频、基础功能 签 到 请 求 步 骤 1、准备工作: 签到线程组n HTTP请求默认值n HTTP cookie 管理器n 首页访问请求n 登录请求n 查看结果树n 调试取样器l HTTP代理服务器 (1)创建线程组 &#xf…

〖程序员的自我修养 - 认知剖析篇⑩〗- 学习编程的高效率方法

人之所以会觉得迷茫,本质上是欠缺对自己的一个控制力、识别庞杂信息、去伪存真的独立思考与认知能力。 说明:该文属于 程序员的自我修养 专栏,购买任意白宝书体系化专栏可加入易编程社区,早鸟价订阅模式除外。福利:加入社区的小伙伴们,除了可以获取博主所有付费专栏的阅读…

python面试:使用cProfile剖析程序性能

我们需要安装tuna:pip install tuna 程序执行完毕后,我们会得到一个results.prof,在CMD中输入指令:“tuna results.prof”。 import time import cProfile import pstatsdef add(x, y):resulting_sum 0resulting_sum xresulti…

Fooocus:一个简单且功能强大的Stable Diffusion webUI

Stable Diffusion是一个强大的图像生成AI模型,但它通常需要大量调整和提示工程。Fooocus的目标是改变这种状况。 Fooocus的创始人Lvmin Zhang(也是 ControlNet论文的作者)将这个项目描述为对“Stable Diffusion”和“ Midjourney”设计的重新…

http服务(Apache 2.4.57)源码编译及使用

这里安装的是Apache 2.4.57版本 1.下载源码包及编译安装 下载地址 # 下载 wget https://archive.apache.org/dist/httpd/httpd-2.4.57.tar.gz # 如果系统自带httpd这个软件要删除掉,两个软件不能同时运行 rpm -e httpd --nodeps # 安装依赖环境 yum -y install apr apr-dev…

《PyTorch 2.0深度学习从零开始学》已出版

#好书推荐##好书奇遇季#《PyTorch 2.0深度学习从零开始学》,京东当当天猫都有发售。定价69元,网店打折销售更便宜。本书配套示例项目源码、PPT课件。 本书以通俗易懂的方式介绍PyTorch深度学习基础理论,并以项目实战的形式详细介绍PyTorch框…

【算法随记】C(n,m)不越界但A(n,m)越界;C(n,1)+C(n,3)+C(n,5)...等二项式定理;“memset”: 找不到标识符

https://codeforces.com/contest/893/problem/E C(n,m)不越界但A(n,m)越界的解决方案 C(n,m) A(n,m) / (n-m)! 这题要模1e97,但是只有加减乘能模,除法模不了。所以这个A(n,m)要存原值,原值也太大了,爆 long long 要是能不要除…

电脑入门:路由器 基本设置操作说明

路由器 基本设置操作说明 首先我们我设置路由器,就需要先登录路由器, 那么怎样登路由器啊? 登录路由器的方法是 在ie的地址栏输入:http://192.168.1.1 输入完成以后直接回车 那么如果你输入正确 这个时候就应该听到有用户名的提示 呵呵 这是怎么回事啊? 不要召集 首…

使用Python脚本添加新的相关节点到arxml文件中的指定位置

使用Python脚本添加新的相关节点到arxml文件中的指定位置 1 背景 随着汽车软件开发的复杂度越来越高,链路越来越长,很多手动配置的工具链所需要的时间就会被拉长,显然这对于项目的开发进度有了一定影响,根据需求自动化生成arxml文件其实很有必要。同时越来越多的测试开始…

在vue3项目中编辑的时候,解决对话框里边的数据和列表中的数据联动了。深复制

//分析原因是从列表中拿到的数据直接复制去修改就涉及到堆里变的内容是一样的&#xff0c;直接复制其实只是把引用地址赋值给变量了&#xff0c;解决方法是 浅复制和深复制。<!-- 审批流程管理 --> <template><div style"float: left; width: 250px;backgr…

Vue2.0 的响应式原理 私

原理&#xff1a; 通过数据劫持 defineProperty 发布订阅者模式&#xff0c;当 vue 实例初始化后 observer 会针对实例中的 data 中的每一个属性进行劫持并通过 defineProperty() 设置值后在 get() 中向发布者添加该属性的订阅者&#xff0c; 使用的Object.defineProperty()…

软件机器人助力行政审批局优化网约车业务流程,推动审批业务数字化转型

随着社会的进步和发展&#xff0c;行政审批业务逐渐趋向于智能化和自动化。近日&#xff0c;某市行政审批局在市场准入窗口引入博为小帮软件机器人大幅度提升了网约车办理业务的效率&#xff0c;创新了原有的业务模式。 软件机器人以其自动化、智能化的特性&#xff0c;优化了网…

Excel:如何实现分组内的升序和降序?

一、POWER 1、构建辅助列D列&#xff0c;在D2单元格输入公式&#xff1a; -POWER(10,COUNTA($A$2:A2)3)C2 2、选中B1:D10&#xff0c;注意不能宣导A列的合并单元格&#xff0c;进行以下操作&#xff1a; 3、删除辅助列即可 二、COUNTA 第一步&#xff0c;D2建立辅助列&#xf…

Maven - 使用maven-release-plugin规范化版本发布

文章目录 Maven Release plugin – IntroductionMaven Release plugin – Plugin DocumentationMaven Release plugin – Usage实战案例 Maven Release plugin – Introduction Maven Release Plugin&#xff08;Maven 发布插件&#xff09;是一个用于帮助在Maven项目中执行版…

前端基础---HTML笔记汇总一

HTML定义 HTML超文本标记语言——HyperText Markup Language。 超文本是什么&#xff1f; 链接标记是什么&#xff1f; 标记也叫标签&#xff0c;带尖括号的文本 标签分类 单标签:只有开始标签&#xff0c;没有结束标签(<br>换行 <hr>水平线 <img> 图像标…

完美解决 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

拉取代码时报错&#xff1a; # Mac 报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key …