/**
 * 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 }


