脚手架简介

脚手架本质是一个操作系统的客户端,它通过命令执行

vue create vue-test-app --force -r https://registry.npm.taobao.org

这条命令由四部分组成:

  • 主命令:vue
  • command:create
  • command 的 param:vue-test-app
  • option:
    • --force:可以理解为--force true,可简写为-f trueor-f
    • -r https://...https://...-rparam

脚手架执行原理

- 在终端输入命令:`vue create vue-test-app` - 终端解析出`vue`命令:`which vue`(`win`用`git bash`) - 终端在环境变量中找到`vue`命令 - 终端根据`vue`命令链接到实际文件`vue.js` - 终端利用`node`执行`vue.js` - `vue.js`解析`command/options` - `vue.js`执行`command` - 执行完毕,退出执行

从应用的角度看如何开发一个脚手架?

vue-cli为例

  • 开发npm项目,该项目中应包含一个bin/vue.js文件,并将这个项目发布到npm
  • npm项目安装到nodelib/node_modules
  • nodebin目录配置下vue软连接指向lib/node_modules/@vue/cli/bin/vue.js

这样就完成了在执行vue命令的时候就可以找到vue.js进行执行

疑问?

  • 为什么全局安装@vue/cli后会添加的命令为vue
    npm install -g @vue/cli
  • 全局安装@vue/cli时发生了什么
  • 为什么vue指向一个js文件,我们却可以直接通过vue命令直接去执行它

开发一个原生脚手架

原生开发痛点分析:

  • 痛点一:重复操作
    • package本地link
    • package依赖安装
    • package单元测试
    • package代码发布
    • package代码提交
  • 痛点二:版本一致性
    • 发布时版本一致性
    • 发布后相互依赖版本升级