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 相关文章推荐
关于图片的预加载过程中隐藏未知的
Dec 19 Javascript
JavaScript获取网页中第一个图片id的方法
Apr 03 Javascript
javascript 应用小技巧方法汇总
Jul 05 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
Mar 01 Javascript
JS操作COOKIE实现备忘记录的方法
Apr 01 Javascript
详解使用nvm安装node.js
Jul 18 Javascript
微信小程序实现下拉刷新和轮播图效果
Nov 21 Javascript
js判断传入时间和当前时间大小实例(超简单)
Jan 11 Javascript
vue 过滤器filter实例详解
Mar 14 Javascript
微信小程序如何实现全局重新加载
Jun 05 Javascript
webpack常用配置总览(小结)
Nov 18 Javascript
在js中修改html body的样式
Nov 11 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查看session内容的函数
2008/08/27 PHP
php二分查找二种实现示例
2014/03/12 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
PHP的mysqli_rollback()函数讲解
2019/01/23 PHP
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
详解Vue之计算属性
2020/06/20 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
[01:00:54]TI4正赛第二日开场
2014/07/20 DOTA
使用Python判断IP地址合法性的方法实例
2014/03/13 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
2020/03/30 Python
Python configparser模块常用方法解析
2020/05/22 Python
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
如何提高JDBC的性能
2013/04/30 面试题
异常和异常类的概念
2014/09/12 面试题
简单的大学生自我鉴定
2014/02/18 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
教师师德师风个人整改方案
2014/09/18 职场文书
保护校园环境倡议书
2015/04/28 职场文书
逃课检讨书范文
2015/05/06 职场文书
起诉状范本
2015/05/20 职场文书
养成教育主题班会
2015/08/13 职场文书
旷工检讨书大全
2015/08/15 职场文书
详解NodeJS模块化
2021/06/15 NodeJs
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫