写在前面。其实一开始并没有刻意去研究vue-cli的源码,只是想了解一下node的命令。想看懂node的command,绕不开tj写的commander。js。在学习commander.js的过程中,发现vue-cli的交互方式很爽,然后去看了源码,才有了这篇文章。链接vue-cli3.0源码分析目录@vue/cli前言介绍启动环境介绍常用npm包vue创建创建入口整体分析基本验证获取预设选项(preset)依赖安装(installDeps)generator端分析总结vueaddadd入口安装插件-incall插件概要vueinvokeinvoke命令vueinspectinspect命令vueserverve命令vuebuildbuild命令vueuiui入口整体分析server端客户端概??要vueinitinit入口@vue/cli-init分析vue-cli2.xinit分析生成函数分析总结vueconfigconfig命令vueupgradeupgrade命令vueinfoinfo命令@vue/cli-service整体介绍入口newService()service.run()内置插件servebuildinspecthelp总结vue-cli-analysis整个项目可以大致划分分为两部分,一部分是vue命令分析,包括create、add、invoke、ui等,另一部分是vue-cli-service的分析。通过分析,发现与2.X相比,3.0变化太大了。通过引入插件系统,开发者可以使用其暴露的API来扩展项目。在分析之前,我对插件机制了解不多,也不知道如何实现。经过分析,逐渐明白了它的实现机制,对vue项目的配置也更加熟悉了。另外,在分析的过程中,我还学习了很多有趣的npm包,比如execa、debug、lowdb、lodash、inquirer等,最后如果你想学习node命令或者写一些有趣的命令行工具的话,阅读vue-cli源码是个不错的选择。
