1、为什么要对 Vue CLI 进行大规模修改?

尤雨溪认为旧版本的 Vue CLI 本质上只是从 GitHub 拉取模版,这种拉模版的方式有几个问题:

(1) 在单个模版里面同时支持太多选项会导致模版本身变得极其复杂和难以维护,而提供多个模版一方面会让初学者无所适从,另一方面模版之间也难以共享功能或是互相迁移。CLI 3 对此的解决方案是通过插件的形式去支持多个不同的功能,一个插件对应一个功能(比如单元测试),这样即避免了多个模版,也使得 CLI 自身的可维护性得到提升。同时,支持第三方插件,使得用户可以实现各种自定义的功能扩展。

(2)拉模版生成的项目,所有的 webpack 配置和构建脚本都直接包含在仓库中,一旦用户对这些部分做了修改,就很难再获得源模版的更新和升级。CLI 3 生成的项目,核心的 webpack 配置和构建逻辑都被封装在依赖中,同时允许用户通过配置文件来进行底层的修改。这样的好处是 CLI 更新后,用户即使做过自定义的修改也依旧可以升级。

(3) 由于核心配置都被封装起来了,所以我们有更多的空间去做更复杂的功能和优化,比如构建时的性能优化(缓存 / 多核),modern mode,生成 web component 等,而不用担心用户的项目里面充斥大量和应用本身无关的构建代码。同时以后随着 web 平台新规范的落地,我们也可以继续在 CLI 中添加各种针对性的优化,用户只需要升级即可获得。

2、加入 GUI 是为了降低使用门槛

一直以来,人们一直认为 GUI 易用,CLI 高效,Vue CLI 3.0 中加入了 GUI,尤雨溪解释说,主要就是为了降低使用门槛,因为命令行能展示的交互很有限,所以默认用户对于创建项目时涉及的各种工具和配置项都有基本的了解。而 GUI 可以提供更多的信息帮助用户了解这些东西是干嘛的。另外 GUI 也能提供一些命令行难以展示的信息,比如通过可视化的图表分析打包后各个模块的大小占比等。

有些 UI 库 /Vue 封装的框架也提供了脚手架,尤雨溪认为大部分库其实不需要特别的配置,提供脚手架的库,一般是需要进行一些特殊的配置来提升开发体验。CLI 3 其实正是希望能够为这种情况提供一个标准方案,所以提供了很强大的插件 API。理想情况下,所有的第三方 UI 库都可以通过插件的形式接入 CLI 3,比如 vuetify 就有对应的 CLI 插件。至于框架(比如 nuxt),由于涉及到更高层的东西,有自身的脚手架无可厚非。

3、Vue 由独立团队维护,单点问题仍存在

前段时间 Vue 公司在招募全职的开源工作者,相信大家都好奇,Vue 公司是否是盈利组织,他们是如何获取资金维持运转的?

对此,尤雨溪答复,目前,Vue 由独立团队维护,并不是那种拿投资的创业公司,资金来源就是赞助商、广告等。现在大部分的子项目都交给团队成员打理,Vue 核心库依然主要由尤雨溪亲自维护。

Vue 团队成员可以复制以下链接在浏览器中打开了解:

https://vuejs.org/v2/guide/te...

对于单点问题,尤雨溪表示,目前单点问题肯定是存在的,他接下来有一部分计划就是细化项目的 governance model,减少项目对他的个人依赖,但这需要时间去慢慢落实。跳出前端的视野来看,Vue 其实是一个很年轻的项目,在这个阶段对核心开发者的依赖是很正常的,甚至可以说是有必要的。很多现在举足轻重的项目,比如 Linux,从某种程度上来说也存在单点问题。Python 在 Guido 宣布退休后会怎么发展,也让人很难预料。

4、独立开发者:自由与风险并存

前端总流行着这么一句话“别更新了,我学不动”,之前也曾有人恶搞 P 图,说尤雨溪要发布 Vue 4.0 了,尤雨溪回应,技术职业本身是一个需要靠不断的学习来维持竞争力的职业,如果只是抱着学会一门手艺吃到老的心态做这行的话,可能会比你想象得更早被淘汰。

作为独立开发者,尤雨溪认为他的时间可以完全自由支配,不用加班,在工作和家庭平衡方面可以说比给公司打工好太多,当然,独立开发的另一面是需要自己承担更多的压力和风险,同时还要有足够的自律能力,所以不一定适合所有人,但对他来说,现在的生活状态使他非常满意。

原文链接:https://www.jianshu.com/p/51a...

更多专业前端知识,请上 【猿2048】www.mk2048.com

专访Vue作者尤雨溪:Vue CLI 3.0重构的原因相关推荐

  1. 比较详细的采访 Vue 作者尤雨溪

    比较详细的采访 Vue 作者尤雨溪 原文链接: medium.freecodecamp.com image 我采访了尤雨溪,著名渐进式 JavaScript 框架 vuejs.org 的创造者.尤雨溪 ...

  2. PetiteVue - Vue 作者尤雨溪新作品,小巧精简版的 Vue

    Vue 作者尤雨溪大神近期的新作品,Vue 的 小巧可代替版,值得关注. 关于 petite-vue 基于 Vue 在国内前端开发圈的火爆程度,无需再过多介绍,Vue 是一套用于构建用户界面的渐进式 ...

  3. Vue 作者尤雨溪:以匠人的态度不断打磨完善 Vue

    本文仅用于学习和交流目的.非商业转载请注明作译者.出处,并保留本文的原始链接:http://www.ituring.com.cn/art... 访谈对象 尤雨溪,Vue.js 创作者,Vue Tech ...

  4. Vue作者尤雨溪B站直播视频

    视频: Vue.js 作者谈 Vue 3.0 beta 现状 如果小博的文章对你有所帮助欢迎点赞留言关注!!!

  5. Babel 陷财务困境,负责人13万年薪遭质疑,Vue.js作者尤雨溪发文力挺

    整理 | Carol 出品 | CSDN(ID:CSDNnews) 最近,拥有百万用户的开源项目 Babel 宣布,由于花钱速度持续高于获取捐赠的速度,Babel 已经陷入了财务困境,当前剩余的资金将 ...

  6. Vue.js 作者 尤雨溪 确认出席 VueConf 2019 上海

    VueConf 2019 上海(第三届VueConf) 将于2019年6月8日 在上海举办. 目前正在抢票中, 如果你对本次会议感兴趣可以移步大会网站:vue.w3ctech.com 如果你有关注过V ...

  7. 掘金 AMA:听 Vue.js 作者--尤雨溪谈 Vue.js 独立开发 设计那些事

    第七期 沸点,掘金团队请来了Vue.js 的作者,全职独立开源开发者尤雨溪做了为期三天的 Ask Me Anything (AMA) 活动(已结束). 我们在此精选了一些来自用户的提问及尤小右(尤雨溪 ...

  8. 尤雨溪 vue 3.0 Bate

    直播回放观看,尤雨溪 vue 3.0 Bate视频 B站观看入口:https://www.bilibili.com/video/BV1Vk4y1R7nb?from=search&seid=16 ...

  9. 听说尤雨溪在开发vue4.0?是谁煽动了前端圈的焦虑情绪

    导火索因P图而起 今天前端圈里被一张P图搞得好热闹,最初只是QQ群里一个冒名尤雨溪的前端网友发了一句调侃的话,原话截图如下: 看完觉得好搞笑,说尤雨溪在开发vue4.0,有谁学不动了,就给他发10块钱 ...

最新文章

  1. Linux(CentOS6.5)中安装maven
  2. (办公)网页发送到桌面快捷方式怎么做
  3. 编译安装linux内核步骤
  4. torch.var()、样本方差、母体方差
  5. P1435 回文字串(DP)
  6. Quartz 在 Spring 中如何动态配置时间--转
  7. php背景,php图片背景填充实例
  8. (原創) 何谓可读性高的程序? (C/C++)
  9. 用心去体验幸福的感觉
  10. 百度手机输入法中的五笔9键盘有问题?
  11. 传新版支持光追的 MikuMikuDance 正由另一人研发——MikuMikuDance 2 Project
  12. Eclipse中Folder和SourceFolder
  13. (转载)洪磊并不是反叛英雄
  14. 漫谈程序员系列:别说“我已经很努力了”
  15. 51单片机-TLC5615代码
  16. CAD梦想画图中的“打断命令”
  17. 算法之红黑树/JAVA
  18. ROS_RGB-D SLAM学习笔记--室内环境测试
  19. 【SSH框架/国际物流商综平台】-01-分三期(仓储管理,货运全流程管理,决策分析)- 项目背景 界面原型 用例图 企业组织结构 功能模块图 系统框架 项目表单收集
  20. 计算机毕业设计ssm农产品推广平台98966系统+程序+源码+lw+远程部署

热门文章

  1. 在虚拟机中的Ubuntu搭建java开发环境
  2. [bzoj3532][Sdoi2014]Lis
  3. 验证码(captcha)的由来
  4. ASP.NET伪静态-无法读取配置文件,因为它超过了最大文件大小的解决办法
  5. Android防盗系统推荐
  6. python下载url_三种Python下载url并保存文件的代码详解
  7. android 动态修改菜单,如何在Android的“选项”菜单上更改MenuItem?
  8. spring java code配置_Spring-09-使用Java的方式配置Spring
  9. python中能够处理的最大整数是_实例讲解Python中整数的最大值输出
  10. 无法打开包括文件:“mysql..h”: No such file or directory