需求
小程序调试时使用Hbuilder的运行功能,在测试环境调试;到了发行正式版时使用发行功能,baseurl需要替换到生产环境;有没有办法让代码能够识别当前使用的时运行还是发行,自动切换baseur而不是手动切换???
分析
uni-app提供了一个全局变量process.env.NODE_ENV,当我们使用Hbuilder时开发时,使用发行功能,这个变量为值为‘production’
代码
分别配置开发和生产环境的地址
config.js
javascript">// 应用全局配置
module.exports = {
//测试环境API前缀
productionBaseUrl: '生产地址',//提交请勿修改
baseUrl: '开发地址',
// 应用信息
appInfo: {
}
};
封装全局的请求方法
request.js
javascript">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