无论前端还是后端在日常开发中,项目里一般都会区分 开发、测试、生产这三个环境(有的还有预发布、灰度发布),这样预先写好不同环境的配置信息,简直是一劳永逸
微信小程序
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
复制代码
[请移步到官方文档中去看看](https://uniapp.dcloud.io/frame?id=%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e5%92%8c%e7%94%9f%e4%ba%a7%e7%8e%af%e5%a2%83)
uniapp