如何修改Vue打包后文件的接口地址配置的方法


Posted in Javascript onApril 22, 2020

1、背景

常规的vue项目分为本地环境和生产环境,我们只要对 config 文件夹下的 dev.env.jsprod.env.js 做相应的配置即可。但是最近在做的项目中,涉及到私有化部署,就是对应的生产环境的地址,不是唯一的。如果每次都修改一个地址,再打包文件进行部署,过程繁琐且低效。那么如何把环境地址设置成可配置的,不需要再构建代码就能直接生效呢?

2、可选方案

进行了调研后,网上介绍的方案有2种:

1)在static上设置一个config.js,把配置的参数设置成 window 下的全局变量。这种方案的确可行,但是,但是,不安全!!! 如果请求地址被恶意修改,后果不太好~

2)使用 generate-asset-webpack-plugin 插件,配置一大坨后生成一个静态文件,然后通过请求的方式,获取需要的数据,这种方法可以解决安全性问题,但是,但是,有点小麻烦啊~

因此,博主根据实际项目,将两种方法结合在一起,形成了一个中和的方案。

3、执行方案配置步骤

第一步:在 static 文件夹中新建一个 config.json,把你要写的配置写入

{
// 基本访问地址
"BASE_URL": "http://webhmy.com"
}

放在static下的文件,可以被直接访问。

第二步:在 main.js 中请求定义的配置文件,并放到 Vue.prototype 中,使全局可访问,注意,这里把new Vue()放在请求里执行,是防止请求与页面渲染之间的时间差异化导致值获取不到,因此这样比较保险。

// 定义外部接口可配置
import axios from 'axios'
let startApp = function () {
 axios.get('/static/config.json').then((res) => {
  // 基础地址
  Vue.prototype.BASE_URL = res.BASE_URL;

  new Vue({
   el: '#app',
   router,
   store,
   components: {
    App
   },
   template: '<App/>'
  })
 })
}

startApp()

第三步:如果在 .vue 文件中使用:

console.log(this.BASE_URL)
// http://webhmy.com

如果在一些 .js 文件中,可以调用Vue后再使用:

import Vue from 'vue'
console.log(Vue.prototype.BASE_URL)
// http://webhmy.com

打包修改

执行 npm run build 可以看到打包文件夹 static 文件夹下的 config.json,之后可以修改配置,刷新页面即可。

如何修改Vue打包后文件的接口地址配置的方法

【补充】
因为请求和打包操作的时差性,哪怕它是请求本地的文件,但是有时发现它的请求会比我们系统的第一个请求慢了,这个时候就会失效。

解决方法:相信我们的项目中都对请求进行了一些封装操作,只要将对应的baseURL的值改成实时获取Vue.prototype.BASE_URL的值,就可以保证接口请求能够准确获取到了~

如何修改Vue打包后文件的接口地址配置的方法

到此这篇关于如何修改Vue打包后文件的接口地址配置的方法的文章就介绍到这了,更多相关Vue打包后接口地址配置内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jQuery 表单验证扩展代码(一)
Oct 11 Javascript
Json字符串转换为JS对象的高效方法实例
May 01 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
Dec 25 Javascript
手机端页面rem宽度自适应脚本
May 20 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
Dec 15 Javascript
ios设备中angularjs无法改变页面title的解决方法
Sep 13 Javascript
微信小程序swiper实现滑动放大缩小效果
Nov 15 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
Jan 04 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
Aug 27 Javascript
weui上传多图片,压缩,base64编码的示例代码
Jun 22 Javascript
JavaScript实现答题评分功能页面
Jun 24 Javascript
vue-router懒加载的3种方式汇总
Feb 28 Vue.js
nuxt+axios实现打包后动态修改请求地址的方法
Apr 22 #Javascript
JS脚本实现定时到网站上签到/签退功能
Apr 22 #Javascript
微信小程序实现手指拖动选项排序
Apr 22 #Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
Apr 22 #Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
Apr 22 #Javascript
Vue computed 计算属性代码实例
Apr 22 #Javascript
js 解析 JSON 数据简单示例
Apr 21 #Javascript
You might like
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
window.location 对象所包含的属性
2014/10/10 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
python从sqlite读取并显示数据的方法
2015/05/08 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
2020/04/26 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
云台山导游词
2015/02/03 职场文书
数学教师个人工作总结
2015/02/06 职场文书
中秋节慰问信
2015/02/15 职场文书
贫困证明书范文
2015/06/16 职场文书
升学宴家长致辞
2015/07/27 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书