详解如何配置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 相关文章推荐
javascript实现的鼠标链接提示效果生成器代码
Jun 28 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
Aug 24 Javascript
JavaScript+html5 canvas绘制的小人效果
Jan 27 Javascript
AngularJS基础 ng-keydown 指令简单示例
Aug 02 Javascript
JS实现字符串转驼峰格式的方法
Dec 16 Javascript
前端开发必知的15个jQuery小技巧
Jan 22 Javascript
JavaScript和JQuery获取DIV值的方法示例
Mar 07 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
Oct 15 Javascript
Vue.js实现可编辑的表格
Dec 11 Javascript
如何使用three.js 制作一个三维的推箱子游戏
Jul 29 Javascript
vue动态合并单元格并添加小计合计功能示例
Nov 26 Vue.js
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(4) php 函数 补充2
2010/02/15 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
javascript 播放器 控制
2007/01/22 Javascript
类之Prototype.js学习
2007/06/13 Javascript
jquery 回车事件实现代码
2011/08/23 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
jquery实现一个简单好用的弹出框
2014/09/26 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
Javascript实现单例模式
2016/01/24 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
Python中分数的相关使用教程
2015/03/30 Python
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
德国购买健身器材:AsVIVA
2017/08/09 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
涉外文秘个人求职的自我评价
2013/10/07 职场文书
董事长岗位职责
2013/11/30 职场文书
个人委托书格式
2014/04/04 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
环保守法证明
2015/06/24 职场文书
开学典礼致辞
2015/07/29 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技