vue-cli
先看项目目录:
- .circleci:集成ci的配置文件
- .github: 提供模版,社区的规范(提交issue的规范)
- docs:基于vitepress创建的文档
- packages(重点!!!!):基于lerna创建的一个多包的能力
@vue文件就是我们对应的vue-cli
- scripts:通过node指令执行对应js脚本
- genDocs:如何生成对应文件的能力
- genChangelog:更新对应文件的能力
- release:发布脚本
inquirer:在创建项目时在命令行进行选择的命令
- bootstrap:项目初始化
- .editorconfig:编辑器的配置文件
- .eslintrc:eslint配置
- jest.config:测试用例文件
pakage.json:项目的简介
- "private": true(项目是私有的,不能被发布到 npm 仓库或其他的包管理器中,不能通过 npm publish 等命令将其发布到公共仓库中)
- "workspaces":用于管理多个npm包
- "scripts":执行脚本
- "pretest": "yarn clean":测试之前先清除对应的缓存
- gitHooks:添加提交的规范
- "commit-msg": "node scripts/verifyCommitMsg.js":提交commit的校验
- devDependencies:本地开发的依赖项
- "@babel/core":对应编译转换的能力
- resolutions:对应测试的
- packageManager:包管理工具
思考:为什么在vue-cli中可以通过vue.config.js去集成
看官网得到答案:
核心包
- vue-cli-version-marker:用来标注版本号,是一个空包,没有任何的作用。
- test:测试包
- @vue(重点包):
- cli:vue脚手架提供的基本的功能
- cli-init:项目初始化集成的脚本
- cli-plugin-XX:vue官方提供的插件
- cli-service:基于webpack进行打包的构建工具
cli文件夹
执行vue create的时候相当于执行的cli/bin下面的vue.js脚本,调用了commander实例 什么是commander?使用node实现的一个交互式问答
- 在cli执行之前检测安装node的版本是否是符合package.json中要求的版本
- chalk.red命令行输出文本的颜色
- 最终调用lib/create:添加真实的项目
- create针对用户当前输入的项目名称进行检测,
- 重名检测:
- generator:所有的代码都是通过这个去创建的
cli-service
- 等同于执行bin文件夹下的service.js
vuex插件是如何集成进去的?
- add的第一步:先获取插件的名称
- 安装vuex(此时的add就是vuecli中内置的一个指令,相当于vue create是一样的)
- 生成generagtor的过程
add和npm之间的区别有哪些?
- add插件是vue-cli默认的提供插件的能力
create vue
- create vue是如何生效的? npm create vue@latest 等同于使用node执行了outfile.cjs这个文件
- 是一个使用vite生成的脚手架