Deno 中如何调用 CLI 命令?

阅读时长 4 分钟读完

Deno 是一个运行时环境,用于在浏览器之外运行 JavaScript 和 TypeScript。它提供了一些内置的 API,例如文件系统、网络请求和进程管理等功能。但是有时候我们需要在 Deno 中调用一些外部的命令行工具,例如 Git 或者其他 Shell 命令。本文将会介绍如何在 Deno 中调用 CLI 命令,并给出一些示例代码。

Deno 的子进程 API

Deno 提供了一个子进程管理 API,可以用来在 Deno 中运行其他的命令行工具。这个 API 有两个函数,分别是 Deno.run()Deno.runSync()

Deno.run()

Deno.run() 函数可以异步地启动一个子进程并运行一个命令行工具。它接受一个对象作为参数,这个对象包含了要运行的命令行工具的相关信息。

-- -------------------- ---- -------
--------- ---------- -
  ---- ---------
  ----- -------
  ----- -
    ----- -------- -------
  --
  -------- --------- - ------- - ------ - -------
  -------- --------- - ------- - ------ - -------
-

其中,cmd 属性是一个字符串数组,表示要运行的命令行工具和其参数。例如,如果要运行 Git 命令,可以这样写:

这个代码会启动一个子进程,运行 git status 命令。

cwd 属性是一个字符串,表示子进程的工作目录。如果不指定,子进程将会在当前目录下运行。

env 属性是一个对象,表示子进程的环境变量。如果不指定,子进程将会继承当前进程的环境变量。

stdoutstderr 属性分别表示标准输出和标准错误输出的处理方式。它们可以是以下几种值:

  • "inherit":将输出重定向到父进程的标准输出或标准错误输出。
  • "piped":将输出读取到一个管道中,可以通过 process.stdoutprocess.stderr 属性获取。
  • "null":将输出丢弃。
  • 一个数字:将输出重定向到一个文件描述符。

Deno.runSync()

Deno.runSync() 函数与 Deno.run() 函数类似,不同之处在于它是同步地启动一个子进程并运行一个命令行工具。它接受的参数和返回值与 Deno.run() 函数相同。

示例代码

下面是一个示例代码,它调用了 Git 命令,并将输出打印到控制台上。

-- -------------------- ---- -------
----- ------- - ----------
  ---- ------- ----------
  ------- --------
  ------- --------
---

----- -------- ------ - ----- -------------
  -----------------
  -----------------------
---

-- ------- -
  ----------------- -----------------------------
-

--------------- -------------------------- -------------------

这个代码启动了一个子进程,运行 git status 命令,并将标准输出和标准错误输出读取到管道中。然后,它等待子进程结束,并获取子进程的退出状态和标准错误输出。如果存在标准错误输出,它将会打印到控制台上。最后,它将标准输出打印到控制台上。

总结

本文介绍了如何在 Deno 中调用 CLI 命令,包括使用 Deno.run()Deno.runSync() 函数。这些函数可以让我们在 Deno 中运行其他的命令行工具,并获取它们的输出。通过这些 API,我们可以更加灵活地使用 Deno 来完成各种任务。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65e1a8241886fbafa4e9c392

纠错
反馈