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 相关文章推荐
javascript scrollTop正解使用方法
Nov 14 Javascript
Node.js与PHP、Python的字符处理性能对比
Jul 06 Javascript
AngularJS语法详解
Jan 23 Javascript
深入浅析JavaScript中with语句的理解
May 12 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
May 27 Javascript
使用DeviceOne实现微信小程序功能
Dec 29 Javascript
jquery实现下拉框多选方法介绍
Jan 03 Javascript
js中toString()和String()区别详解
Mar 23 Javascript
angular-tree-component的使用详解
Jul 30 Javascript
vue基于element的区间选择组件
Sep 07 Javascript
vue进入页面时滚动条始终在底部代码实例
Mar 26 Javascript
使用js实现单链解决前端队列问题的方法
Feb 03 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 Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
JS OffsetParent属性深入解析
2014/01/13 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
jquery map方法使用示例
2014/04/23 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
javascript数组排序汇总
2015/07/07 Javascript
浅析javascript的return语句
2015/12/15 Javascript
探寻JavaScript中this指针指向
2016/04/23 Javascript
js实现文字截断功能
2016/09/14 Javascript
JS制作适用于手机和电脑的通知信息效果
2016/10/28 Javascript
jQuery代码优化方法总结
2018/01/29 jQuery
Angular父组件调用子组件的方法
2018/04/02 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
django的ORM操作 增加和查询
2019/07/26 Python
详解django实现自定义manage命令的扩展
2019/08/13 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
2020/11/24 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
护理专业推荐信
2013/11/07 职场文书
室内设计专业个人的自我评价
2013/12/18 职场文书
学习委员自我鉴定
2014/01/13 职场文书
员工安全责任书范本
2014/07/24 职场文书
倡议书格式
2014/08/30 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
比较几种Redis集群方案
2021/06/21 Redis
Python使用永中文档转换服务
2022/05/06 Python