vue打包后生成一个配置文件可以修改IP

需求说明

因为项目要适应各个地方,需要配置不同的IP,如果还是依赖于开发人员按照不同的地区打包,对于项目安装包管理起来是比较麻烦的。所以需要通过配置文件来解决这个问题。

刚开始觉得ip是开发是就写死了的,应该是不可以修改的,但是通过百度大法找到了解决的办法,但是实现起来还是存在一些问题。从这篇文章中学习到了如何解决这个问题

实现

安装插件

npm install --save-dev generate-asset-webpack-plugin

修改vue.config.js中的文件

let  GenerateAssetPlugin = require('generate-asset-webpack-plugin');
let  createServerConfig = function(compilation){
  let cfgJson={ApiUrl:"192.168.1.174:8040"};
  return JSON.stringify(cfgJson);
}

由于chrome禁止ajax访问本地文件,所以换成了jsonP访问数据

<script>
        function getJson(data){
          // data 就是要取的json数据
          console.log(data);
          localStorage.setItem('IP', JSON.stringify(data))
          // 可以在函数内部对json数据进行处理
        }
    </script>
    <script typeof="text/javascript" src="serverconfig.json?callback=getJson"></script>

json文件

getJson要和前面的名称一致,并且需要在打包自行添加

getJson({"ApiUrl":"192.168.1.123:8088"})

然后就可以实现通过配置文件来改变IP了,在使用过程中跨域问题确实比较麻烦,通过修改浏览器设置对于实施来说不太友好,所以参考选择了jsonP实现获取到本地json文件。

原文地址:https://blog.csdn.net/Yuoliku/article/details/114310815