现在我希望在控制台中直接输入my-cli
命令执行test.js
文件,怎么实现?
xiaohu@xiaohudeMacBook-Pro code % my-cli
zsh: command not found: my-cli
当前命令在操作系统中是不存在的,我们希望my-cli
执行的时候指向test.js
- 查找环境变量
xiaohu@xiaohudeMacBook-Pro code % echo $PATH
/Users/xiaohu/.nvm/versions/node/v18.12.1/bin:/opt/homebrew/sbin:/opt/homebrew/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin
- 在bin目录下创建一个软连接指向
test.js
xiaohu@xiaohudeMacBook-Pro code % pwd
// test.js目录
/Users/xiaohu/Desktop/code
xiaohu@xiaohudeMacBook-Pro code % cd ~/.nvm/
xiaohu@xiaohudeMacBook-Pro .nvm % cd ~/.nvm/versions/node/v18.12.1/bin/
xiaohu@xiaohudeMacBook-Pro bin % ln -s /Users/xiaohu/Desktop/code/test.js my-cli
xiaohu@xiaohudeMacBook-Pro bin % my-cli
bbb
xiaohu@xiaohudeMacBook-Pro bin %
此时,可以看到软连接已经创建成功,并且执行my-cli
返回了test.js
文件执行的结果
在控制台输入ls -alF
可以查看我们创建的软连接
xiaohu@xiaohudeMacBook-Pro bin % ls -alF
total 161800
drwxr-xr-x 23 xiaohu staff 736 5 19 11:27 ./
drwxr-xr-x 9 xiaohu staff 288 11 27 2022 ../
lrwxr-xr-x 1 root staff 33 8 11 2023 cnpm@ -> ../lib/node_modules/cnpm/bin/cnpm
// 我们自己创建的软连接
lrwxr-xr-x 1 xiaohu staff 34 5 19 11:27 my-cli@ -> /Users/xiaohu/Desktop/code/test.js
-rwxr-xr-x 1 xiaohu staff 82840704 11 5 2022 node*
lrwxr-xr-x 1 xiaohu staff 38 11 5 2022 npm@ -> ../lib/node_modules/npm/bin/npm-cli.js
xiaohu@xiaohudeMacBook-Pro bin %
为什么脚手架本质是操作系统的客户端?
脚手架的执行和web应用是完全不一样的,它和web应用可以说没什么关系,只不过都是使用js编写。
脚手架执行的本质是通过node执行,而test.js
只是node的一个参数
xiaohu@xiaohudeMacBook-Pro code % node test.js
bbb
xiaohu@xiaohudeMacBook-Pro code % my-cli
bbb
xiaohu@xiaohudeMacBook-Pro code %
如何为脚手架创建别名?
xiaohu@xiaohudeMacBook-Pro code % which node
/Users/xiaohu/.nvm/versions/node/v18.12.1/bin/node
xiaohu@xiaohudeMacBook-Pro code % cd /Users/xiaohu/.nvm/versions/node/v18.12.1/bin
// 创建别名
xiaohu@xiaohudeMacBook-Pro bin % ln -s ./my-cli mycli2
xiaohu@xiaohudeMacBook-Pro bin % mycli2
bbb