npm 包 @teamroboboogie/tabtab-commander 使用教程

介绍

@teamroboboogie/tabtab-commander 是一款 Node.js 的 CLI 工具,可用于创建命令行界面(CLI)的交互式自动补全功能。此 npm 包基于 tabtab 构建,可以方便地实现终端命令的自动补全功能,支持 Bash、Zsh 和 Fish 等终端。

安装

你可以直接使用 npm 进行安装:

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

使用

基本使用

使用 @teamroboboogie/tabtab-commander 可以很方便地实现自动补全功能。下面我们从几个方面来介绍如何使用它。

首先,在你的 Node.js 脚本中引入该 npm 包:

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

然后,你需要实例化一个 TabtabCommander 类实例。

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

其中,name 属性表示你的 CLI 工具的名称。例如,我们下面展示的示例中,name 属性值为 my-cli

接下来,你可以通过使用 commander.handleAutoComplete() 方法来为你的 CLI 工具添加自动补全功能。例如:

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

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

这样我们就完成了最基本的配置,后面我们会介绍如何进行更多的设置。

添加命令

在 CLI 工具中添加命令是常常见的操作。我们来看如何使用 commander.command() 方法来添加命令。

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

上述代码将会创建一个 hello 命令并添加自动补全功能。例如在终端中输入:

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

你就可以在命令行中看到:

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

添加子命令

如果您的 CLI 工具具有多个子命令,您可以通过 commander.subcommand() 来实现。

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

上述代码将会添加一个 start 命令并添加自动补全功能。其中,我们还通过 options 属性添加了两个选项:

  • --verbose 或者 -V:表示输出详细的日志信息;
  • --port 或者 -p: 表示指定的端口。

--port 选项中,我们还使用了 args 属性,这个属性用于指定这个选项接收值的配置信息。这里我们使用了 portList 变量,用于指定这个选项可以接收的所有值的列表。

使用生成器

我们可以使用生成器来动态地生成值列表,为 CLI 工具的自动补全功能提供更多的灵活性。例如:

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

上述代码中,我们为 checkout 命令的 commit 参数使用了一个异步的生成器函数。它执行了一个 shell 命令来获取 Git 仓库中的所有提交记录,然后包装成一个值列表返回。

命令参数的自动补全

如果你的命令参数有限定的输入列表,你可以为之定义一个生成器,当你按 tab 自动补全时,输入提示将会是这个值列表。

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

在上述代码中,我们定义了 msg 命令的一个参数 level。它的输入列表是 ['error', 'warn', 'info', 'verbose', 'debug']

总结

到这里,我们已经介绍了如何使用 @teamroboboogie/tabtab-commander 实现终端命令的自动补全功能。该 npm 包功能强大,提供了多种配置项和接口等,可以让你轻松地为自己的 CLI 工具赋予自动补全功能。如果你正在开发一个 CLI 工具,@teamroboboogie/tabtab-commander 值得你一试。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005757a81e8991b448ea5d8


猜你喜欢

  • npm 包 signalk-raspberry-pi-temperature 使用教程

    前言 在前端开发中,我们常常需要与硬件设备进行交互,获取设备数据或者控制设备进行操作。而 Raspberry Pi 是一种常用的小型计算机,它价格便宜、性能强劲,常常被用于搭建各种 IoT 应用。

    3 年前
  • npm 包 @bocodigitalmedia/jsonschema 使用教程

    前言 在前端开发中,我们经常需要对数据进行校验,这时候就需要用到 jsonschema。而 @bocodigitalmedia/jsonschema 是一个通过 JSON schema 验证数据的 N...

    3 年前
  • npm 包 heroclis 使用教程

    介绍 heroclis 是一个基于 Node.js 的轻量级命令行工具,用于增强前端开发体验和提高开发效率。它提供了一系列实用工具和模板,包括: 创建一个基于 React 的项目模板; 在项目中创建...

    3 年前
  • npm 包 phalcon 使用教程

    介绍 Phalcon 是一个使用 C 语言扩展编写的 PHP 框架,具有高性能和低内存消耗的特点。在使用 Phalcon 时,需要先将其编译为一个 PHP 扩展,然后才能在 PHP 项目中使用。

    3 年前
  • npm 包 datatables-quickedit 使用教程

    在前端开发过程中,经常会用到表格来展示数据。而 datatables-quickedit 是一个非常强大的 npm 包,它提供了快速编辑表格的功能,大大提高了效率。

    3 年前
  • npm 包 eden-mquery 使用教程

    在前端开发中,使用数据库查询是非常常见的操作。因此,一个优秀的查询库是非常重要的。在众多 npm 包中,eden-mquery 是一个功能强大的 MongoDB 查询库,它可以轻松地查询 MongoD...

    3 年前
  • npm 包 start-jest 使用教程

    在前端开发中,自动化测试是必不可少的环节。而 Jest 是 JavaScript 的测试框架,可以进行各种测试,包括单元测试、集成测试、端到端测试等。为了更方便地使用 Jest ,许多开发者使用 st...

    3 年前
  • npm 包 smass 使用教程

    在前端开发中,我们经常用到样式框架来快速搭建网页的基本样式,不过手写样式依然是无法替代的。为了让手写样式更加方便,我们可以使用 smass 这个 npm 包。 smass 是什么 smass 是一种基...

    3 年前
  • npm 包 zlide 使用教程

    如果你正在寻找一种简便的方式来制作响应式的幻灯片展示,那么 zlide 可能是一个很好的选择。zlide 是一个小型但功能强大的 npm 包,它提供了许多可定制的选项来创建适合不同需求的幻灯片展示。

    3 年前
  • npm 包 guarded-string 使用教程

    在前端开发过程中,为了保证用户输入的数据的安全性和防止一些潜在的安全威胁,我们经常需要对用户输入的信息进行一些数据处理,如字符串加密等。npm 包 guarded-string 正是一个能够帮助我们实...

    3 年前
  • npm 包 croud-vue-semantic 使用教程

    在前端开发中,UI 组件库是一个必不可少的工具。croud-vue-semantic 是一种基于 Vue.js 的 UI 组件库,提供了一系列美观、易用、可自定义的组件,并且设计风格和语义化符合现代 ...

    3 年前
  • npm 包 tinbox 使用教程

    在前端的开发中,我们经常需要制作各种形态的文本框,并对其进行一些特殊的样式或功能的定制。npm 包 tinbox 就是一个很棒的工具,可以帮助我们快速创建精美的文本框和输入框,以及提供许多可自定义的设...

    3 年前
  • npm 包 @rickselby/jqueryui-datepicker-bootstrap-sass 使用教程

    在前端开发中,有很多常见的 UI 组件需要使用,例如日期选择器。而经常使用的日期选择器 jQuery UI Datepicker 可以通过前端框架 Bootstrap 的样式进行美化,并结合 Sass...

    3 年前
  • npm 包 hexo-app-connect 使用教程

    前言 在现在的网络应用开发中,前端应用的重要性越来越被看重。然而,前端工程师在开发中常常需要面对的问题是大量的重复性工作,如重复编写 HTML、CSS、JS 文件,修缮旧代码,浏览器兼容性测试以及构建...

    3 年前
  • npm 包 json2server 使用教程

    前言 在前端开发过程中,常常涉及到前后端交互,而在开发过程中我们需要测试前端页面的请求与响应是否能够正常工作。在此时,如果你没有服务器端脚本,那么你就可能需要一个简易的本地服务器来测试你的前端请求与响...

    3 年前
  • npm 包 collection-course 使用教程

    简介 collection-course 是一个前端常用数据处理方法的封装,包括常用的数组、对象、字符串等相关方法。集成了 lodash 和 ramda 的大部分方法,并进行了优化和精简,可大幅减少项...

    3 年前
  • npm 包 devapt-core-common 使用教程

    在前端开发过程中,我们不可避免地需要使用各种各样的工具,其中 npm 作为 Node.js 的包管理工具,是我们最常接触到的一种。而 devapt-core-common 是一款专注于提供前端组件所需...

    3 年前
  • npm 包 random-character 使用教程

    前言 在前端开发过程中,随机生成字符串或者数字是一个非常常见的需求。这时候,我们可以使用 npm 包 random-character 来实现这个功能,它提供了丰富的生成随机字符或数字的功能,如自定义...

    3 年前
  • npm 包 rockety-assets 使用教程

    在前端开发中,我们常常需要使用各种静态资源(如图片、字体、样式表等)。而 npm 包 rockety-assets 提供了一种方便地管理这些静态资源的方式。 什么是 rockety-assets ro...

    3 年前
  • npm 包 restify-oauth2-pure 使用教程

    在前端开发中,我们经常会涉及到 OAuth2.0 认证授权的问题。对于 Node.js 开发者来说,npm 上的 restify-oauth2-pure 包提供了一种快捷的解决方案。

    3 年前

相关推荐

    暂无文章