详解如何配置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 相关文章推荐
js控制框架刷新
Aug 01 Javascript
jQuery实现textarea自动增长宽高的方法
Dec 18 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
Jun 21 Javascript
JavaScript & jQuery完美判断图片是否加载完毕
Jan 08 Javascript
Angularjs单选改为多选的开发过程及问题解析
Feb 17 Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
Mar 01 Javascript
深入理解AngularJs-scope的脏检查(一)
Jun 19 Javascript
webpack配置导致字体图标无法显示的解决方法
Mar 06 Javascript
使用Angular Cli如何创建Angular私有库详解
Jan 30 Javascript
简述pm2常用命令集合及配置文件说明
May 30 Javascript
JavaScript中this函数使用实例解析
Feb 21 Javascript
小程序实现录音功能
Sep 22 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
同时提取多条新闻中的文本一例
2006/10/09 PHP
php include的妙用,实现路径加密
2008/07/29 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
json 定义
2008/06/10 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
node.js学习总结之调式代码的方法
2014/06/25 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
Vue.js添加组件操作示例
2018/06/13 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
Vue一个案例引发的递归组件的使用详解
2018/11/15 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
python3 拼接字符串的7种方法
2018/09/12 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
python3实现弹弹球小游戏
2019/11/25 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
澳洲的服装老品牌:SABA
2018/02/06 全球购物
现场活动策划方案
2014/08/22 职场文书
低碳环保演讲稿
2014/08/28 职场文书
十八大标语口号
2014/10/09 职场文书
家长高考寄语
2015/02/27 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
高中团支书竞选稿
2015/11/21 职场文书