vue-cli

84 阅读2分钟

vue-cli

先看项目目录:

image.png

  • .circleci:集成ci的配置文件
  • .github: 提供模版,社区的规范(提交issue的规范)
  • docs:基于vitepress创建的文档 image.png
  • packages(重点!!!!):基于lerna创建的一个多包的能力

@vue文件就是我们对应的vue-cli image.png

  • scripts:通过node指令执行对应js脚本

image.png image.png

  • genDocs:如何生成对应文件的能力
  • genChangelog:更新对应文件的能力
  • release:发布脚本 inquirer:在创建项目时在命令行进行选择的命令 image.png
  • 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去集成

看官网得到答案:

image.png

image.png

image.png

核心包

image.png

  • vue-cli-version-marker:用来标注版本号,是一个空包,没有任何的作用。
  • test:测试包
  • @vue(重点包): image.png
  • cli:vue脚手架提供的基本的功能
  • cli-init:项目初始化集成的脚本
  • cli-plugin-XX:vue官方提供的插件
  • cli-service:基于webpack进行打包的构建工具
cli文件夹

执行vue create的时候相当于执行的cli/bin下面的vue.js脚本,调用了commander实例 什么是commander?使用node实现的一个交互式问答

image.png

  • 在cli执行之前检测安装node的版本是否是符合package.json中要求的版本
  • chalk.red命令行输出文本的颜色

image.png

image.png

image.png

  • 最终调用lib/create:添加真实的项目
  • create针对用户当前输入的项目名称进行检测,
  • 重名检测:

image.png

  • generator:所有的代码都是通过这个去创建的
cli-service
  • 等同于执行bin文件夹下的service.js

image.png

vuex插件是如何集成进去的?

image.png

  • add的第一步:先获取插件的名称
  • 安装vuex(此时的add就是vuecli中内置的一个指令,相当于vue create是一样的) image.png
  • 生成generagtor的过程

add和npm之间的区别有哪些?

  • add插件是vue-cli默认的提供插件的能力

create vue

  • create vue是如何生效的? npm create vue@latest 等同于使用node执行了outfile.cjs这个文件
  • 是一个使用vite生成的脚手架