详解如何配置vue-cli3.0的vue.config.js


Posted in Javascript onAugust 23, 2018

本文介绍了如何配置vue-cli3.0的vue.config.js,分享给大家,具体如下:

vue-cli 3 英文文档
vue-cli 3 中文文档
webpack 4 plugins
webpack-chain

TLDR

vue-cli 3 与 2 版本有很大区别

  1. vue-cli 3 的 github 仓库由原有独立的 github 仓库迁移到了 vue 项目下
  2. vue-cli 3 的项目架构完全抛弃了 vue-cli 2 的原有架构,3 的设计更加抽象和简洁(此处后续可以详细介绍)
  3. vue-cli 3 是基于 webpack 4 打造,vue-cli 2 还是 webapck 3
  4. vue-cli 3 的设计原则是“0配置”
  5. vue-cli 3 提供了 vue ui 命令,提供了可视化配置,更加人性化

由于 vue-cli 3 也学习了 rollup 的零配置思路,所以项目初始化后,没有了以前熟悉的 build 目录,也就没有了 webpack.base.config.js、webpack.dev.config.js 、webpack.prod.config.js 等配置文件。

那么,我们该如何去配置自己的项目了?

其实这一切都是因为 vue-cli 3 的项目初始化,帮开发者已经解决了 80% ,甚至绝大部分情形下的 webpack 配置。

上述功能就是由 @vue/cli-service 依赖去处理,当你打开 node_modules 目录下 @vue 中的 cli-service 看一眼,是不是找到了熟悉的感觉?

详解如何配置vue-cli3.0的vue.config.js

说了这么多,开发者在实际开发过程中,肯定还有需要自己去修改配置的地方,那么,该怎么做了?

这点就需要在项目根目录下手动新建一个 vue.config.js,此处参考我提供的一个基础模板 [[vue.config.js]]

所以现在所有的问题都集中在了--- 我到底要怎么样去修改这个配置文件?

一些简单的配置,比如多页面、接口代理,大家可以自己去看下官方 doc ,文章最上面有提供。

如果需要改动原本 webpack 的配置,该怎么做了?

因为 vue-cli 3 中的 cli-service 对 webpack 4 引入了 webpack-chain 插件,同时对配置进行了高度抽象化,所以开发者想随心所欲的修改配置,操作方式就比以前更加难。在我的亲身实践下,总结了几点,供大家参考:

首先,修改点主要位于 vue.config.js 中的

configureWebpack: (config) => {
// 简单/基础配置,比如引入一个新插件
},
chainWebpack: (config) => {
// 链式配置
}
loaderOptions: {
   css: {
    // options here will be passed to css-loader
   },
   postcss: {
    // options here will be passed to postcss-loader
   }
}

具体操作可以看文章最上面的链接,此处不再赘述。

核心一点就是: cmd 中敲 vue inspect > output.js , 这样我们会得到一份最终生效的 webpack 配置信息,省去了你自己去看 cli-service 源码。

然后,我举个栗子:

我的项目中,需要修改 eslint 的配置,让它不去检测我项目下的 src/lib 目录,因为这里是外部库文件(其实此处也可以在项目中直接新建一个 .eslintignore文件去处理,但我这里选择修改 webpack 文件)

第一步: vue inspect > output.js

第二步: 在 output.js 中搜索 eslint 相关配置,结果如下:

详解如何配置vue-cli3.0的vue.config.js

第三步: 我确定了我要修的是 exclude 配置项

第四步: 去 mozilla-neutrino/webpack-chain 全局搜 exclude,结果如下:

详解如何配置vue-cli3.0的vue.config.js

第五步: 因为 exclude 只出现了一次,微微一笑很倾城。但是我看到了 include,接着搜 include,结果如下:

详解如何配置vue-cli3.0的vue.config.js

第六步: 参考 include 的写法,以此类推:

详解如何配置vue-cli3.0的vue.config.js

最后,我们在 vue inspect > output.js 看一下,

详解如何配置vue-cli3.0的vue.config.js

总结一下,在多用几次 webpack-chain 以后,相信我,你会发现很多规律,vue-cli 3 也就很简单啦。

后记

当你准备着手一个新的项目的时候,请事先想清楚这个项目的架构以及用到的ui组件等等

比如我们的项目

1. 使用vant UI组件
2. 封装axios服务
3. 使用路由拆分(基于history)
4. 路由切换动画
。。。

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

Javascript 相关文章推荐
User Scripts: Video Download by User Scripts
May 14 Javascript
JQuery 应用 JQuery.groupTable.js
Dec 15 Javascript
JavaScript编程的10个实用小技巧
Apr 18 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
Oct 14 Javascript
JavaScript数组Array对象增加和删除元素方法总结
Jan 20 Javascript
AngularJS实现一次监听多个值发生的变化
Aug 31 Javascript
微信小程序 绘图之饼图实现
Oct 24 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
Dec 26 Javascript
Angular 封装并发布组件的方法示例
Apr 19 Javascript
node.js命令行教程图文详解
May 27 Javascript
小程序选项卡以及swiper套用(跨页面)
Jun 19 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
Aug 07 Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 #Javascript
React key值的作用和使用详解
Aug 23 #Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
Aug 23 #Javascript
从零开始学习搭建React脚手架项目
Aug 23 #Javascript
angular2 ng2-file-upload上传示例代码
Aug 23 #Javascript
Angular angular-file-upload文件上传的示例代码
Aug 23 #Javascript
JS实现的简单分页功能示例
Aug 23 #Javascript
You might like
php中的时间处理
2006/10/09 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
JQuery复选框全选效果如何实现
2020/05/08 jQuery
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python调用windows api锁定计算机示例
2014/04/17 Python
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
python 操作mysql数据中fetchone()和fetchall()方式
2020/05/15 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
python爬取微博评论的实例讲解
2021/01/15 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
PHP两种查询函数array/row的区别
2013/06/03 面试题
品质主管的岗位职责
2013/12/04 职场文书
初一学生评语大全
2014/04/24 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
干部培训简讯
2015/07/20 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书