vue-cli 3.x配置跨域代理的实现方法


Posted in Javascript onApril 12, 2019

写在前面

vue-cli 3.x 的beta版本已经发布了一段时间,很早就像体验一番一直找不到时间。这些日子刚好有空就想着依照网上的一些例子练下手,刚一上手就踩到坑了。

3.x 版本对整个项目的构建都有很大的改动,项目的默认配置整个都转移到CLI service里去了,从而所有的配置文件在初始化的项目中并没有生成。初次生成项目的时候可谓是完全懵的,无论是baidu还是google,对于3.x的介绍几乎就没有,仅有的一些也只是项目的一些生成流程,那怎么办,只能靠自己瞎整了。

既然没有现成的(作为一个伸手党我还是很自觉的承认了),那就只能去扒官方文档了,慢慢啃。这可就苦了我这个英语战斗力只有5的渣了,凭借着百度翻译和谷歌翻译,然后夹杂着自己的一些猜想,好歹是把基本的给整明白了一点点。

由于文笔实在太烂了,多余的废话就不说了,直接上干货。

跨域代理配置

由于3.x的默认配置都转移到了CLI service里,所以生成的项目中并没有配置项,我们如果需要自定义一些项目配置,则需要自己在项目的根目录(root)创建一个vue.config.js。vue.config.js里的配置项所有都是可选的,这就避免了我们去看一大堆不必要的默认配置,只需要配置自己需要的部分就行了。【官方文档】

由于baseUrl也是关联的部署目录,我们需求的仅仅是开发环境的变量,所以尽可能的我们不动baseUrl这个变量以免部署的时候出现问题。所以这里配置稍作修改。

需求上是我们只需要在开发环境配置跨域代理,所以我们可以在开发环境的配置上加上能够代理上的环境变量即可。官方提供了环境变量的配置方案。

在项目的根目录,我们创建一个.env.development文件来做开发环境的变量设置。

我们在.env.development文件下设置变量VUE_APP_BASE_API=/api即可将devServer的proxy重写的url赋值给VUE_APP_BASE_API,我们仅需在axios的封装方案上使用VUE_APP_BASE_API这个变量,就可以对应上devServer设置的变量。

// vue.config.js
module.exports = {
  // 修改的配置
  // 将baseUrl: '/api',改为baseUrl: '/',
  baseUrl: '/',
  devServer: {
    proxy: {
      '/api': {
        target: 'http://www.example.org',
        changeOrigin: true,
        ws: true,
        pathRewrite: {
         '^/api': ''
        }
      }
    }
  }
}
// .env.development
VUE_APP_BASE_API=/api

这里依然是采用的http-proxy-middleware来做的代理配置,一些自定义配置可以移步到官网去进行参考。

后记

第一次写文档,之前都是伸手养成了懒得习惯,现在因没有可伸手的,就自己撸了,同时以此便利萌新以及也在踩坑的小伙伴。希望能帮到大家。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
use jscript List Installed Software
Jun 11 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
Mar 17 Javascript
javascript 异步页面查询实现代码(asp.net)
May 26 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
Nov 21 Javascript
javascript同步服务器时间和同步倒计时小技巧
Sep 24 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
Sep 18 Javascript
iview日期控件,双向绑定日期格式的方法
Mar 15 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
Apr 05 Javascript
Vue内部渲染视图的方法
Sep 02 Javascript
微信小程序canvas开发水果老虎机的思路详解
Feb 07 Javascript
序列化模块json代码实例详解
Mar 03 Javascript
Element PageHeader页头的使用方法
Jul 26 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
Apr 12 #Javascript
详解Bootstrap 学习(一)入门
Apr 12 #Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
Apr 12 #Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
Apr 12 #Javascript
详解Vue中使用插槽(slot)、聚类插槽
Apr 12 #Javascript
JS实现li标签的删除
Apr 12 #Javascript
vue中多路由表头吸顶实现的几种布局方式
Apr 12 #Javascript
You might like
用php过滤危险html代码的函数
2008/07/22 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
Python定时器线程池原理详解
2020/02/26 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
师范生的个人求职信范文
2014/01/04 职场文书
麦当劳辞职信范文
2014/01/18 职场文书
寒假实习自荐信
2014/01/26 职场文书
文化宣传方案
2014/03/13 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
就业意向书范本
2015/05/11 职场文书
学术会议开幕词
2016/03/03 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书