在 Node 中使用 execa 运行命令

Node.js 有一个内置 child_process 模块。它提供了一些方法,允许我们编写在子进程中运行命令的脚本。

这些命令可以运行安装在我们运行脚本的机器上的任何程序。

什么是 execa?

execachild_process 模块提供了一个包装器,以便于使用。

本文将介绍 execa 的好处,以及如何使用它。

使用 execa 的好处

execa 相对于内置的 Node.js child_process 模块有几个好处。

首先,execa 公开了一个基于 promise 的 API。这意味着我们可以在代码中使用 async/await,而不需要像使用异步 child_process 模块方法那样创建回调函数。如果我们需要它,还有一个 execaSync 方法可以同步运行命令。

execa 还可以方便地转义并引用我们传递给它的任何命令参数。例如,如果我们传递一个带有空格或引号的字符串,execa 将为我们处理转义。

程序在输出的末尾添加一行新行是很常见的。这有利于命令行的可读性,但在脚本上下文中没有帮助,因此默认情况下,execa 会自动为我们删除这些新行。

如果执行脚本(node)的进程因任何原因死掉,我们可能不希望子进程挂起。execa 会自动为我们清理子进程,确保我们不会出现“僵尸”进程。

使用 execa 的另一个好处是,它支持在 Windows 上使用 Node.js 运行子进程。它使用了流行的 cross-spawn 包,该包可以解决 Node.js 的已知问题。

开始使用 execa

创建并切换到 tutorial 目录:

$ mkdir execa-test
$ cd execa-test

初始化项目:

$ npm init -y

安装 execa

$ npm i execa

在 Node.js 中使用纯 ES 模块

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值