实际生产中搭建一个脚手架或者阅读其他脚手架源码的时候需要了解下面这些工具库 👇
| 名称 | 简介 |
|---|---|
| commander | 命令行自定义指令 |
| inquirer | 命令行询问用户问题,记录回答结果 |
| chalk | 控制台输出内容样式美化 |
| ora | 控制台 loading 样式 |
| figlet | 控制台打印 logo |
| easy-table | 控制台输出表格 |
| download-git-repo | 下载远程模版 |
| fs-extra | 系统fs模块的扩展,提供了更多便利的 API,并继承了fs模块的 API |
| cross-spawn | 支持跨平台调用系统上的命令 |
项目地址:https://github.com/SSQLQIANBB/cli
command命令
1. < >(尖括号)
常见含义:必填参数(placeholder)
表示这个位置的值是你必须替换成实际内容的,而不能直接输入尖括号本身。
例子:
bashgit commit -m <message>这里
<message>表示你必须输入提交说明,比如:bashgit commit -m "Fix bug"
2. [ ](方括号)
常见含义:可选参数
表示这个参数可以省略,如果省略则使用默认行为。
例子:
bashls [-l] [path]l是可选的,表示长格式输出path也是可选的,省略时默认是当前目录
3. ( )(圆括号)
常见含义:
- 在命令文档里:表示分组或可选项集合
- 在 shell 里:表示子 shell 执行
文档里的例子:
bashcommand (start|stop|restart)表示
start、stop、restart三选一。shell 里的例子:
bash(cd /tmp && ls) # 在子 shell 中执行
4. { }(花括号)
常见含义:
- 参数占位符集合
- bash 中的大括号扩展(brace expansion)
例子:
bashcp file.{txt,md} /backup # 会复制 file.txt 和 file.md
✅ 总结表
| 符号 | 含义 | 示例 | 说明 |
|---|---|---|---|
<…> | 必填参数 | git commit -m <message> | 尖括号表示必须替换成实际值,执行时不保留尖括号本身。 |
[…] | 可选参数 | ls [-l] | 方括号表示可省略,如果有多个可选参数可连用。 |
(…) | 分组选项 / 互斥选项 | git checkout (-b | --detach) | 圆括号表示一组选项,` |
{…} | 枚举值集合 | tar -{c|x|t} | 大括号表示可选的固定值,必须选其中之一。 |
… | 可重复 | cp <file>... <directory> | 表示该参数可以出现多次(重复传递)。 |
| ` | ` | 二选一 / 多选一 | (start|stop) |
-- | 长选项 | npm install --save | 一般跟随参数名(全拼),更具可读性。 |
- | 短选项 | ls -l | 单字符选项,有时可合并:ls -la。 |
--[no-] | 开启/关闭型选项 | --color / --no-color | 常见于支持显式关闭的 CLI。 |
command1 | command2 | 管道 | ls | grep "txt" | 将前一个命令输出作为下一个命令的输入。 |
; | 顺序执行 | cmd1; cmd2 | 无论前一个成功与否,都会执行下一个。 |
&& | 成功才执行 | cmd1 && cmd2 | 仅当前一个命令成功(退出码 0)时才执行下一个。 |
| ` | ` | 失败才执行 | |
* | 通配符 | rm *.log | 匹配任意多个字符(shell 通配)。 |
? | 单字符通配 | file?.txt | 匹配任意单个字符。 |
[...](Shell 通配) | 字符集合 | file[1-3].txt | 匹配集合中任意一个字符或范围。 |
'…' | 单引号字符串 | 'hello $name' | 禁止变量替换,原样输出。 |
"…" | 双引号字符串 | "hello $name" | 允许变量替换。 |
… | 命令替换 | echo date`` | 执行内部命令并返回结果。 |
$(…) | 现代命令替换 | echo $(date) | 同上,但更推荐且可嵌套。 |
# | 注释 | # This is a comment | 忽略该行内容(shell 解释器不执行)。 |