需求
小程序调试时使用Hbuilder的运行功能,在测试环境调试;到了发行正式版时使用发行功能,baseurl需要替换到生产环境;有没有办法让代码能够识别当前使用的时运行还是发行,自动切换baseur而不是手动切换???
分析
uni-app提供了一个全局变量process.env.NODE_ENV,当我们使用Hbuilder时开发时,使用发行功能,这个变量为值为‘production’
代码
分别配置开发和生产环境的地址
config.js
// 应用全局配置
module.exports = {//测试环境API前缀productionBaseUrl: '生产地址',//提交请勿修改baseUrl: '开发地址',// 应用信息appInfo: {}
};
封装全局的请求方法
request.js
import config from '@/config'
let baseUrl = config.baseUrl
//在这里判断当前是什么环境,切换相应的地址
if(process.env.NODE_ENV === 'production'){baseUrl=config.productionBaseUrl;
}const request = (config) =>{
...
return new Promise((resolve, reject) => {uni.request({method: config.method || 'get',timeout: config.timeout || timeout,url: config.baseUrl || baseUrl + config.url,data: config.data,header: config.header,dataType: 'json',})
}export default request