Skip to content

脚手架的实现原理

脚手架实现原理

如果你能回答以下 3 个问题,就掌握了脚手架的实现原理:

  • 为什么全局安装 @vue/cli 后会添加的命令为 vue
    • package.json中有bin的配置
bash
npm install -g @vue/cli
  • 全局安装 @vue/cli 时发生了什么?

    • 下载vuenode_modules
    • 配置软连接
  • 执行 vue 命令时发生了什么?为什么 vue 指向一个 js 文件,却可以直接通过 vue 命令去执行它?

    • 通过操作系统的which vue找到vue,并执行这个文件
    • js文件被执行因为存在#!/usr/bin/env node

脚手架原理进阶

掌握上节内容后,我们可以继续尝试回答以下 2 个问题:

  • 为什么说脚手架本质是操作系统的客户端?它和在PC上安装的应用/软件有什么区别?
  • 如何为 node 脚手架命令创建别名?
    • ln -s ./xxx xxx
  • 描述脚手架命令执行的全过程。

cli_process

扩展一下,有的同学可能会问下面两种写法的区别?

bash
#!/usr/bin/env node
#!/usr/bin/node
  • 第一种是在环境变量中查找 node
  • 第二种是直接执行 /usr/bin/ 目录下的 node

Released under the MIT License.