脚手架实现原理

上节咱们遗留了3个问题,接下来缓缓解答

  • 为什么全局装置@vue/cli后会增加的命令为vue
  • 全局装置@vue/cli时产生了什么
  • 执行vue命令时产生了什么,为什么vue指向一个js文件,咱们却能够间接通过vue命令去执行它

1. 为什么全局装置@vue/cli后会增加的命令为vue

which vue #查看vue的理论文件门路/Users/cuijianjun/.nvm/versions/node/v14.6.0/bin/vue而后两头有软连贯/Users/cuijianjun/.nvm/versions/node/v14.6.0/lib/node_modules/@vue/cli/bin #理论真正执行的文件
  • 在雷同目录下有package.json
  • cat package.json
  • 决定名称是这里 vue

2. 全局装置@vue/cli时产生了什么

  • 下载依赖到全局lib/node_nodules
  • 配置bin的软链接

3. 执行vue命令时产生了什么,为什么vue指向一个js文件,咱们却能够间接通过vue命令去执行它

  • 操作系统会依据which vue的门路,找到可执行的文件(换个说法就是看看vue这个命令在环境变量中,有没有被注册)
  • #!/usr/bin/env node,文件外面有对应的node解释器,所以能够间接调用执行

扩大:有同学会问上面两种写法区别

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

形容脚手架命令执行的全过程