vue 项目打包,根据不同命令,配置不同环境,请求不同接口地址

实现效果:

  • 给测试环境打包时,采用A接口地址;
  • 给生产环境打包时,采用B接口地址;

实现原理

process.argv获取当前运行的node命令,再根据不同命令,获取不同环境下的相应配置;

实现步骤

1、修改package.json,新增测试环境的打包命令

 "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "build": "node build/build.js prod",       // 修改原来的打包命令,新增 prod 字段
    "build:test": "node build/build.js test"    // 新增的测试环境打包命令 test 
  },

2、在config目录下新建test.env.js

module.exports = {
  NODE_ENV: '"test"',
  BASE_API:'"http://x.x.x.x"'             // 测试
}

3、在webpack.prod.conf.js中新增配置

关键点

关键点:process.argv 可以获取package.json中当前运行的命令

例如:运行npm run build:test,结合上方的package.json,即运行node build/build.js test,
可通过process.argv获取到node命令以空格分割后的数组,即['node',‘build/build.js’,'test'];

因此,就可以根据命令的不同,获取不同的打包环境

let command = process.argv[2];   // process.argv =====> 获取package.json中scripts中传入的运行命令node build/build.js test
console.log('当前打包环境:',command);
let env = require(`../config/${command}.env`);

版权声明:本文为yiyueqinghui原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。