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