50 lines
1.8 KiB
JavaScript
50 lines
1.8 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';
|
||
//import production2 from './env.production2.js'; //当生存环境上线后需要删除该配置。 仅仅为了上线审核(目前还没有生产地址)
|
||
|
||
const allEnvMap = {
|
||
development: development,
|
||
test: test,
|
||
demo: demo,
|
||
production: production,
|
||
}
|
||
|
||
// 获取当前环境变量
|
||
// 在 HBuilderX 中,点击“运行”编译出来的代码是开发环境,点击“发行”编译出来的代码是生产环境
|
||
// ( https://uniapp.dcloud.io/worktile/running-env.html#%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 )
|
||
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 }
|
||
|
||
|