基于 vue-cli 打包指定ip配置文件

配置文件所在的目录结构
在这里插入图片描述
module文件夹存放所有各后端ip的配置文件,类似与后端springBoot中yml一样
以下为base.js中代码

// 获取命令行中指定的配置文件
const configFileName = process.env.VUE_APP_CONFIG_FLIE_NAME;

let moduleType = configFileName !== 'undefined' ? configFileName : 'tianjin';
let moduleFile = require.context('./module', false, /\.js$/);
let module = {};
moduleFile.keys().forEach(key => {
  if (key.includes(moduleType)) {
    module = moduleFile(key).default;
  }
});
export default module;

vue.config.js中添加一下代码

const argv = JSON.parse(process.env.npm_config_argv);

const config = {};
let idx = 2;
const cooked = argv.cooked;
const length = argv.cooked.length;
while ((idx += 2) <= length) {
  config[cooked[idx - 2]] = cooked[idx - 1];
}

process.env.VUE_APP_CONFIG_FLIE_NAME = config['--configFileName'];

命令

# 运行命令
npm run dev  // 默认配置文件为天津
或
npm run dev --configFileName=tianjin  // 指定运行配置文件

# 运行命令
npm run build  // 默认配置文件为天津
或
npm run build --configFileName=tianjin  // 指定打包配置文件

如果提交代码时报JSON.parse错的话,是应为process.env.npm_config_argv不是一个真正的JSON数据,可以vue.config.js文件内容可以改为以下代码

const json = eval("("+`${process.env.npm_config_argv}`+")");
const argv = json ? json.cooked[3] : 'tianjin';
process.env.VUE_APP_CONFIG_FLIE_NAME = argv;
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值