脚手架实现原理
上节咱们遗留了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