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 相关文章推荐
为超链接加上disabled后的故事
Dec 10 Javascript
动态加载js和css(外部文件)
Apr 17 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
Jun 06 Javascript
下拉框select的绑定示例
Sep 04 Javascript
Node.js异步I/O学习笔记
Nov 04 Javascript
Javascript实现快速排序(Quicksort)的算法详解
Sep 06 Javascript
JavaScript中Function函数与Object对象的关系
Dec 17 Javascript
plupload+artdialog实现多平台上传文件
Jul 19 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
Dec 29 Javascript
JS实现的五级联动菜单效果完整实例
Feb 23 Javascript
vue图片加载与显示默认图片实例代码
Mar 16 Javascript
使用node搭建自动发图文微博机器人的方法
Mar 22 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
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
如何使用Strace调试工具
2013/06/03 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
Vue父组件调用子组件事件方法
2018/02/23 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
关于uniApp editor微信滑动问题
2021/01/15 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
Python与Java间Socket通信实例代码
2017/03/06 Python
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
简单了解python代码优化小技巧
2019/07/08 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
使用python实现画AR模型时序图
2019/11/20 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
什么是接口(Interface)?
2013/02/01 面试题
数字天堂软件测试面试题
2012/12/23 面试题
大学生求职计划书
2014/04/30 职场文书
诚信承诺书模板
2014/05/26 职场文书
企业精神口号
2014/06/11 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
法学专业求职信范文
2015/03/19 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
男生贾里读书笔记
2015/06/30 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
PyTorch中permute的使用方法
2022/04/26 Python