概念
echo /etc/shells
和 cat /etc/shells
查看当前操作系统支持的命令行shell
bash shell
可以理解为脚手架的运行环境,用来执行程序的,不像其他脚手架 cd
、ls(文件管理)
等来执行特定任务的
脚手架
vue create demo --force -r xxxxxx
这个命令可以分为几个部分来看
- 主命令:vue
- 可以通过
which xxx
指令,终端会在环境变了中找到xxx这个指令,返回指令所在的位置/Users/bytedance/.nvm/versions/node/v14.20.1/bin/vue
cd /Users/bytedance/.nvm/versions/node/v14.20.1
,输入ls -l
可查看bin目录和lib目录,lib内指向
- 可以通过
- 子命令:command,具体能够使用的command可以根据
vue -h 或 vue --help
来查看 - command的param:demo
- option:例如
--force
等等,可以理解为脚手架的配置,一般会以--
和-
开头,option也会存在param,但是也可能省去了param脚手架已经给了默认值
cd /Users/bytedance/.nvm/versions/node/v14.20.1
,输入ls -l
可查看bin目录和lib目录
进入lib目录
cd lib/node\_modules
,里面存放的是node的全局依赖,所有通过npm i -g xxx 安装的包都会放在里面,再进入指定包内cd \@vue/cli
看到的就是当前包(脚手架)的源码进入
cd lib/node_modules/@vue/cli
文件内会有一个package.json中有一个bin属性配置的就是对应的指令(主命令\软连接)的名称以及执行的文件路径,例如安装vue-cli,执行的指令名是vue: "bin" : { "vue": "bin/vue.js" }全局安装的包也可能会存在
usr/bin/xxx
进入bin目录
cd bin
,可以看到bin目录下有很多指令例如:vue
,每一个指令都配置了软连接指向对应的地址,例如:../lib/node_modules/@vue/cli/bin/vue.js
,这样我们在执行vue指令,就会根据指令找到软连接的文件地址执行le1
全局安装了@vue/cli发生了什么?
npm i -g @vue/cli
安装成功后- 在
/Users/bytedance/.nvm/versions/node/v14.20.1/lib/node_modules
目录内添加@vue依赖包 - 然后再
/Users/bytedance/.nvm/versions/node/v14.20.1/bin
下添加依赖包的软连接 - 根据软连接找到文件位置执行代码,因为文件顶部添加
#! usr/bin/env node
这行代码指定了到环境变了中找node这个命令,用node命令来执行js代码 usr/bin/env
执行这个命令可以展示所有环境变量,usr/bin/env node xxx.js
执行这个命令相当于用node xxx.js
来执行文件