(二)脚手架开发--原理篇

108 阅读2分钟

现在我希望在控制台中直接输入my-cli命令执行test.js文件,怎么实现?

xiaohu@xiaohudeMacBook-Pro code % my-cli

zsh: command not found: my-cli

当前命令在操作系统中是不存在的,我们希望my-cli执行的时候指向test.js

  1. 查找环境变量
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
  1. 在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

脚手架命令执行全过程

未命名.drawio (1).png