46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
/**
|
||
* ENV 的封装
|
||
* 由于uniapp 无法设置.env等打包属性,实现线上,线下多版本配置属性的无缝切换。
|
||
* process.env.NODE_ENV 将在打包环境通过编译器进行替换, 线上打包后无法获取到 process对象。 所以将配置属性统一封装到appConfig中。
|
||
*
|
||
* 环境地址环境枚举详见: appConfig.js
|
||
*
|
||
* @author terrfly
|
||
* @site https://www.jeequan.com
|
||
* @date 2021/12/16 17:57
|
||
*/
|
||
import appConfig from '@/config/appConfig.js';
|
||
|
||
// uni-app 暂时不支持动态import(导包app报错), 需要将所有的env全部导入 = = 、
|
||
import development from './env.development.js';
|
||
import test from './env.test.js';
|
||
import demo from './env.demo.js';
|
||
import production from './env.production.js';
|
||
|
||
const allEnvMap = {
|
||
development: development,
|
||
test: test,
|
||
demo: demo,
|
||
production: production
|
||
}
|
||
|
||
// 获取当前环境变量
|
||
const processEnv = process.env.NODE_ENV
|
||
|
||
// 改变env环境
|
||
function changeEnv(envMode){
|
||
|
||
appConfig.env = allEnvMap[envMode || processEnv]
|
||
|
||
// // 动态导包的方式:设置全局env配置项目 : 当参数不存在, 那么获取node环境
|
||
// import(`./env.${envMode || processEnv}.js`).then(module => {
|
||
// appConfig.env = module.default
|
||
// }).catch(() => {
|
||
// appConfig.env = production //当出现错误, 比如本地没有复制dev文件时, 默认使用生产环境
|
||
// })
|
||
}
|
||
|
||
export default { changeEnv: changeEnv }
|
||
|
||
|