vue中打包生成可配置文件以便修改接口地址

vue打包上传到服务器之后,如果数据接口域名发生变化,需要手动修改接口地址,在发布的时候也麻烦,于是。。

在打包之后如果有一个json配置文件以便修改那不是方便很多

在网上找了一些方法貌似都是异步请求json文件,试过之后发现了问题:这个实际是需要在其他后端接口请求之前就返回接口地址。然后再进行其他一系列如登陆,获取用户信息等接口请求。

其实是需要同步操作的,在这个完成成功之后再进行其他一系列操作才对,于是乎,就想要不要试试promise等方法把异步变同步来进行操作?but,由于之前已经封装好了一系列接口,这样做的话实在太过麻烦,工程太大 。。

用 generate-asset-webpack-plugin生成json文件的方法也试过,发现还是行不通

后面经过折腾,绕了一个大圈,终于找到一个方法,又不用改配置文件,也不用修改已经封装好的axios请求方法。。用require来获取json文件的数据,成功!!!

由于之前webpack的配置是打包的时候会把static文件夹下面的文件copy过去,所以这里的config.json文件就放在static文件夹下面,打包之后就会打包过去。

config.json文件,这里配置一个接口地址

{"ApiUrl":"http://192.168.1.99:99"}

然后在用到这个接口地址的地方用require获取

axios.server.js  --- 之前已经封装了axios方法以及实际使用

具体见这篇博客:vue中封装axios方法

下面的代码只是其中很小的一部分(不全)

const serverconfig = require(‘../../static/serverconfig.json‘)

class SllAxios{

  getUrl(url){
    return `${serverconfig.ApiUrl}${url}`; // 打包时用这个 __ce.baseURL
  };

}

export default myAxios;

这样的话既不用改什么配置文件,又不用考虑同步异步问题,较为简单的实现了最初的目的----打包后的文件里有json文件以便以后接口地址变化频繁打包,手动修改

原文地址:https://www.cnblogs.com/leiting/p/10385345.html

时间: 2024-11-09 06:23:40

vue中打包生成可配置文件以便修改接口地址的相关文章

vue.js打包生成配置文件(参考)

第一步:安装generate-asset-webpack-plugin插件 cnpm install generate-asset-webpack-plugin --save-dev 第二步:配置build/webpack.prod.conf.js文件 //打包时输出可配置文件 const GenerateAssetPlugin = require('generate-asset-webpack-plugin') const createServerConfig = function (comp

vue中axios的基本配置

vue中axios的基本配置 1.配置默认地址 axios.defaults.baseURL = ""; 2.发送数据详解 axios 使用 post 发送数据时,默认是直接把 json 放到请求体中提交到后端的.也就是说,我们的 Content-Type 变成了 application/json;charset=utf-8 ,这是axios默认的请求头content-type类型.但是实际我们后端要求的 'Content-Type': 'application/x-www-form-

服务器修改IP地址导致zabbix 不能连接mysql故障

一.故障说明: zabbix服务器IP 地址由192.168.1.226 改为192.168.1.73 访问zabbix时出现故障如下: 二.分析错误提示:连接数据库失败 解决思路: 1.在安装zabbix设定的数据库名称.端口.IP.账号.密码等,如果能修改此处设置的IP地址,问题可能会得到解决. 2.安装是填写的信息会生成一个配置文件,修改配置文件即可. #vi /etc/zabbix/web/zabbix.conf.php 三. 重启apache: #systemctl  restart

vue打包之后生成一个配置文件修改接口

前言: 我们的vue代码打包上传到服务器之后, 要是数据接口 以后换了域名什么的,是不是需要重新去vue文件里修改接口. 能不能生成一个配置文件,里面可以配置域名或其它什么字段之类的,这样以后换了域名,只需打开记事本 修改一下域名即可. 教程: 第一步:安装generate-asset-webpack-plugin插件 npm install --save-dev generate-asset-webpack-plugin 第二步:配置webpack.prod.conf.js文件 //让打包的时

Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

原创文章,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4535459.html android 程序打包成apk,如果在是命令行方式,一般都要经过如下步骤: 1.用aapt命令生成R.java文件 2.用aidl命令生成相应java文件 3.用javac命令编译java源文件生成class文件 4.用dx.bat将class文件转换成classes.dex文件 5.用aapt命令生成资源包文件resources.ap_ 6.用apkbuilder.bat打包资源

vue中Npm run build 根据环境传递参数方法来打包不同域名

项目开发中,前端在配置后端api域名时很困扰,常常出现: 本地开发环境: api-dev.demo.com 测试环境: api-test.demo.com 线上生产环境: api.demo.com, 这次是在Vue.js项目中打包,教大家个方法: 使用 npm run build -- xxx   ,根据传递参数xxx来判定不同的环境,给出不同的域名配置. 1.项目中/config/dev.env.js修改: 新增:HOST: '"dev"' 1 2 3 4 5 6 7 'use st

vue中修改子组件样式

一.全局修改 1.在App.vue中设置,引入公共样式及个别页面的特殊样式common.css: 例如:<link rel="stylesheet" type="text/css" href="static/assets/css/common.css"> 下边的写法没用过参考链接中给的 <a href="http://home.cnblogs.com/u/134870/" target="_blan

VUE中让由全局变量添加生成的新数组不随全局变量的变化而变化

问题场景: const addOptions = { singleOrComplex, totalNum: this.smallTotalPrice, selectList: this.purchaseLotter, smallTotalPrice: this.smallTotalPrice * 2 } this.selectSucLotter.push(addOptions) addOptions中的红框内容为全局的变量,我们需要往this.selectSucLotter中添加addOptio

在vue中利用vue-qr插件动态生成二维码并嵌入LOGO

收到需求要生成二维码的时候刚进项目组不久,接触vue也才一两个星期,还处于懵逼状态. 本小白的第一反应就是百度二维码的生成方法,网上有很多大神给出解决方案,最开始本小白以为是在后台生成图片然后传到前台页面,后来发现可以直接在前端用js生成,网上查到的大部分都是用jquery.qrcode.js配合utf.js(为了支持中文)和jquery-1.8.0.js来实现,亲测可行(但本白只在原生HTML中实现,vue中死活报错:"找不到qrcode方法",是不是本小白没找准姿势,哪位大神求告知