likes
comments
collection
share

微信小程序区分 开发、体验(测试)、生产环境

作者站长头像
站长
· 阅读数 24

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

无论前端还是后端在日常开发中,项目里一般都会区分 开发、测试、生产这三个环境(有的还有预发布、灰度发布),这样预先写好不同环境的配置信息,简直是一劳永逸

微信小程序

wx.getAccountInfoSync()

在微信小程序开发中可以用这个方法,查看官方文档 了解到Object wx.getAccountInfoSync() 这个Api

在下面 返回值参数介绍中 有写 miniProgram一项 在miniProgram.envVersion 中的合法值为

    develop	开发版	
    trial	体验版	
    release	正式版

用这个api 就可以区分三种环境 打印结果如下

console.log(wx.getAccountInfoSync())
// {
//     miniProgram: {
//         appId: "************"
//         envVersion: "develop"
//         version: "" // 线上小程序版本号仅支持在正式版小程序中获取,开发版和体验版中无法获取。
//     }
// }

项目获取请求地址可以用这个值区分

const env = wx.getAccountInfoSync().miniProgram.envVersion

const baseApi = {
  // 开发版 
  develop: "https://xxx.com",
  // 体验版
  trial: "https://xxx.com",
  // 正式版
  release: "https://xxx.com"
};
const api = baseApi[env]
export default api;

__wxConfig

另外还有一个隐藏的内部变量 ** __wxConfig** 里面涉及到很多信息大概如下

console.log(__wxConfig)
// {
//     envVersion: "develop",
//     accountInfo: {
//         appId: "*****"
//         icon: "http://*****"
//         nickname: "***"
//     },
//     brand:'**',// 手机品牌(运行在手机上预览和正式环境才有)
//     platform: "devtools" // 当前运行系统 android|ios ..
//     ...
// }

可以看到 其中也有包含当前所处环境的变量envVersion

所以上稳重 constenv = wx.getAccountInfoSync().miniProgram.envVersion 可以改为如下

const env = __wxConfig.envVersion

uniapp

请移步到官方文档中查看

转载自:https://juejin.cn/post/7012537250017706015
评论
请登录