因为项目为局域网下,涉及到多地部署,会有多个ip,但是如果每次更改,每次都得帮着打包太麻烦,本人太懒,网上查询资料。找到多种方式。
一:利用 generate-asset-webpack-plugin 插件
使用 generate-asset-webpack-plugin 插件,配置一大堆文件,通过请求获取数据,安全性高,但过程麻烦
二:利用public下的文件不会被打包的原理
在pubic下生成一个json文件,在封装的axios中用原生ajax请求去获取json文件,根据自定义的环境来设置接口地址
json文件:
{
"url": "http://xx:xx"
}
封装axios里的请求
let baseURL
const getBaseUrl = function () {
var xhr = new XMLHttpRequest();
xhr.open('GET', "./config.json",true);
xhr.send(null);
xhr.onreadystatechange = function () {
if (xhr.status === 200 && xhr.readyState === 4) {
baseURL = JSON.parse(xhr.responseText).url
}
}
};
const getUrl = function () {
if (process.env.NODE_ENV === 'development' ) {
baseURL = process.env.VUE_APP_API_URL
} else {
getBaseUrl()
}
}
getUrl()