使用 JS 编写脚本的工具 zx
Bash 很棒,但是对于开发者来说,我们需要学习更多的语法,对于前端构建或者 node 服务来说,用 JavaScript 是个不错的选择。zx 对 child_process 进行了包装并且提供了合适的默认值。
当我们第一眼看到 $ 时候,我们最先想到什么呢?
我们仍旧需要使用 $ 符号添加命令,即 $command
来进行命令。
接下来我们解析源代码
配置项
对于任何一些项目,我们第一个考虑的就是配置项目。
-
shell
指定使用什么 shell,默认为 bash
-
prefix
命令运行的前缀,默认 set -euo pipefail;
-
quote
指定用于在命令替换期间转义特殊字符的函数,默认为 shq
-
verbose
是否详细输出所有的执行命令
后续我们直接使用 $cat package.json | grep name
prefix
该配置指定命令的前缀
quote
函数
cd
我们可以学习一下源码:
我们可以看到当前 cd 并没有直接切换到文件目录,而是通过存储,懒执行。
fetch
函数直接调用了 node-fetch 库
question
问题