在平时开发测试中,会有频繁切换线上线下环境的需求。一般情况下,线上线下环境url地址就是前缀不一样,修改一下前缀,重新编译打包。相当的费时间
主要有以下两种方法:
一、.第一种方法:通过配置.env文件来实现
此处有官方网址可以查看参考:https://cli.vuejs.org/zh/guide/mode-and-env.html
二、
分为以下三步:
第一步:通过创建不同环境js文件,再通过cross-env来切换
config
dev.js //开发环境
prod.js //生产环境
dev.js //开发环境内容
module.exports = {
BASE_URL: "https://test.365msmk.com"
};
prod.js //生产环境内容
module.exports = {
BASE_URL: "https://www.365msmk.com"
};
第二步:安装cross-env并在package.json中配置要传递的参数
npm install cross-env -D
package.json中配置
"scripts": {
"serve": "cross-env BUILD_ENV=dev vue-cli-service serve",
"build": "cross-env BUILD_ENV=prod vue-cli-service build"
}
第三步:修改vue.config.js添加对webpack的配置
module.exports = {
.....
chainWebpack: config => {
config.plugin("define").tap(args => {
args[0]['process.env'].BUILD_ENV = JSON.stringify(process.env.BUILD_ENV);
return args;
});
}
};
在业务代码做环境的切换
//读取process.env常量对象中的BUILD_ENV
const envType = process.env.BUILD_ENV;
const urlObj = require(../config/${envType}.js
);
//创建一个axios实例
const service = axios.create({
baseURL: urlObj.BASE_URL + vipUrl
});