如何修改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 相关文章推荐
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
Mar 26 Javascript
js Form.elements[i]的使用实例
Nov 13 Javascript
javascript 另一种图片滚动切换效果思路
Apr 20 Javascript
$.each与$().each的区别示例介绍
Mar 20 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
js钢琴按钮波浪式图片排列效果代码分享
Aug 26 Javascript
javascript显示倒计时控制按钮的简单实现
Jun 07 Javascript
js Canvas绘制圆形时钟教程
Feb 06 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
Jun 28 Javascript
关于jQuery.ajax()的jsonp碰上post详解
Jul 02 jQuery
Angular2使用vscode断点调试ts文件的方法
Dec 13 Javascript
JS高阶函数原理与用法实例分析
Jan 15 Javascript
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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
Javascript实现的分页函数
2006/12/22 Javascript
分享别人写的一个小型js框架
2007/08/13 Javascript
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
js与css实现弹出层覆盖整个页面的方法
2014/12/13 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
Python paramiko模块的使用示例
2018/04/11 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
解决python读取几千万行的大表内存问题
2018/06/26 Python
python将list转为matrix的方法
2018/12/12 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
库存图片、照片、矢量图、视频和音乐:Shutterstock
2021/02/12 全球购物
亿企通软件测试面试题
2012/04/10 面试题
师范生自我鉴定范文
2013/10/05 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
实习班主任自我评价
2015/03/11 职场文书
复兴之路展览观后感
2015/06/02 职场文书
教师节晚会主持词
2015/06/30 职场文书
《刷子李》教学反思
2016/02/20 职场文书
关于Python中进度条的六个实用技巧分享
2022/04/05 Python