npm 包 @jigsaw/vorpal 使用教程

阅读时长 7 分钟读完

概述

npm 是一个广泛使用的 Node.js 包管理工具,我们可以通过 npm 安装各种功能强大的 Node.js 包,以实现快速开发和部署。@jigsaw/vorpal 是一个基于 Node.js 的命令行界面组件库,它提供了丰富的功能和灵活的配置,可以帮助我们轻松地创建交互式命令行界面。

本文将介绍如何使用 @jigsaw/vorpal 创建一个命令行界面,并添加命令、命令参数和选项等功能。我们将通过一个示例代码,演示如何使用 @jigsaw/vorpal 执行操作系统命令,并展示如何将其集成到 Node.js 应用程序中,以及如何将其部署到远程服务器上。

安装

我们可以通过 npm 安装 @jigsaw/vorpal,如下所示:

在本地项目中使用 @jigsaw/vorpal,则应该将其作为依赖项添加到 package.json 文件中,并通过 npm 安装。

创建命令行界面

在我们可以创建命令行界面之前,我们必须先引入 @jigsaw/vorpal 并创建实例。我们可以通过以下代码实现:

接下来,我们可以定义命令行的名称和版本,例如:

在上述代码中,我们设置了用于提示符的分隔符和“历史”文件名,还设置了 CLI 的版本和描述。

添加命令

一旦我们成功创建了 Vorpal 实例,就可以添加一个或多个命令。我们可以通过调用 cli.command() 方法来添加命令。例如,以下代码创建一个名为“hello”的命令:

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

在上述代码中,我们定义了一个带有一个可选参数的命令“hello”,并且可以通过“hi”命令别名调用它。还定义了一个“-p”或“--prefix”选项,用于设置问候语的前缀。我们将在命令实现中使用所有这些信息(参数值和选项值)。

在 action() 回调函数中,我们编写要执行的操作:使用 args.name 获取传递的名称参数(如果未传递,则使用“World”),并使用 args.options.prefix 获取传递的前缀(如果设置),并在 console.log() 语句中使用这些值输出问候语。

添加子命令

对于更复杂的程序,我们可能需要将命令分组到子命令下。我们可以通过调用 cli.command() 方法,将一个父命令传递到第一个参数中,将一个子命令传递到第二个参数中,并设置其参数和选项。

例如,以下代码在先前的“hello”命令下添加了一个名为“goodbye”的子命令:

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

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

在上述代码中,我们创建了一个“hello”命令,后面跟随一个“goodbye”子命令。为了使它们更容易辨认,我们还为每个别名定义了一个短名称。

在“hello”命令的 action() 回调中,我们输出“Hello”问候语,处理参数和选项,而“goodbye”命令的回调输出“Goodbye”问候语。

集成到 Node.js 应用程序

一旦我们创建了自定义命令行界面和命令后,我们可以将其集成到我们自己的 Node.js 应用程序中。仅需将此 package.json 文件中的“bin”项设置为CLI所在的 JavaScript 文件的路径:

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

在上述代码片段中,我们将“mycli”命令行工具指向了一个名为“cli.js”的文件。

其中,cli.js 文件应与其他 Node.js 应用程序文件一起保存。

我们可以在启动应用程序时调用 CLI 方法,以使其可用于命令行。

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

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

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

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

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

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

部署到服务器

最后,我们可以在远程服务器上部署我们的 Node.js 应用程序和自定义 CLI。我们可以使用基于云的主机平台(如 AWS、Google Cloud 或 Microsoft Azure),或者使用自己的独立服务器。

我们可以使用 ssh 命令连接到远程服务器,并使用 scp 命令将我们的文件夹复制到服务器上。

一旦我们到达服务器,在服务器上执行以下命令,可以在全局范围内安装命令行工具:

现在,我们可以在服务器上的任何目录下使用 mycli 命令运行自定义 CLI。

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

纠错
反馈