乐趣区

关于javascript:脚手架实现原理

脚手架实现原理

上节咱们遗留了 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

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

退出移动版