使用 Deno 构建交互式 CLI 工具

阅读时长 6 分钟读完

什么是 Deno?

Deno是一种基于 JavaScript 和 TypeScript 的运行时环境,它是由 Node.js 的创始人 Ryan Dahl 开发的。Deno 在很多方面和 Node.js 有相似之处,例如,它们都基于 V8 引擎,且都能用 JavaScript 或 TypeScript 编写应用程序。但是,Deno 比 Node.js 更加注重安全和模块化,它不再使用 npm 包管理器,而是直接使用 URL 导入模块。

为什么使用 Deno 构建交互式 CLI 工具?

交互式 CLI 工具是一种在终端上与用户进行交互的命令行工具,它能够为用户提供简单的 UI 和交互式操作。使用 Deno 去构建交互式 CLI 工具有以下优点:

  1. Deno 具有更好的安全性和模块化,能够快速导入和使用模块,方便开发人员进行组件化开发;
  2. TypeScript 作为 Deno 的核心语言,规范了代码结构,增强了代码的可读性;
  3. 相比 Node.js,Deno 更加轻量级,能够更快速地启动和运行应用程序。

怎样使用 Deno 构建交互式 CLI 工具?

安装 Deno

我们可以通过访问 Deno 的官方网站来安装它,这里不再赘述。完成安装后,使用以下命令来验证是否安装成功:

如果能看到版本号,说明 Deno 安装成功。

安装第三方依赖库

我们可以通过直接导入第三方依赖库的 URL 来使用它们,例如,我们可以使用以下代码导入 cliffy 库实现交互式 CLI 工具:

编写交互式 CLI 工具

交互式 CLI 工具由多个命令构成,每个命令都可以有多个选项和参数。我们可以使用 cliffy 库的 Command 类来构建命令。以下是一个简单的例子:

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

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

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

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

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

代码说明:

  • 第 1 行和第 2 行导入了 Command 类和 color 模块;
  • 第 4 ~ 7 行使用 Command 类创建了一个命令对象,并指定了命令的名称、版本号、描述和帮助信息;
  • 第 9 ~ 14 行定义了一个名为 hello 的子命令,它有一个名为 name 的参数,参数类型为 string,用来指定打招呼的对象;
    • example 方法用来添加示例;
    • action 方法用来指定当执行该命令时需要执行的回调函数;
  • 第 16 ~ 25 行定义了一个名为 goodbye 的子命令,它有一个名为 name 的参数和一个名为 message 的选项,选项类型为 string,用来指定道别的消息;
  • 第 27 行解析命令行参数。

运行交互式 CLI 工具

将上述代码保存为 mytool.ts 文件后,在终端中输入以下命令运行:

--allow-env 参数表示允许访问环境变量,--allow-net 参数表示允许访问网络,--allow-read 参数表示允许读取文件系统。

我们可以通过以下命令获取工具的帮助信息:

输出如下:

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

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

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

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

我们可以执行以下命令验证程序功能:

输出如下:

输出如下:

总结

本文介绍了如何使用 Deno 构建交互式 CLI 工具。在编写交互式 CLI 工具时,我们可以使用 cliffy 库来构建命令,用 TypeScript 语言规范代码结构,并且在执行时需要开启对环境变量、网络和文件系统的访问权限。Deno 能够提供更加安全和模块化的环境,同时启动和运行更加轻量级的应用程序。

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

纠错
反馈