介绍
commander-tabtab
是一个可以帮助你快速实现交互式 CLI 应用程序自动补全的 npm 包。它为程序员提供了一种可重用的方式来生成和处理自动补全选项,并将它们与您的程序的命令一起使用。
此文将详细介绍 commander-tabtab
的安装和使用步骤,并且通过一个实例来展示它在实际项目中的应用。
安装
使用 npm
安装 commander-tabtab
:
npm install --save commander commander-tabtab
commander
是一个非常流行的工具,可以用来快速创建命令行界面应用程序。
使用
首先,在你的应用程序的入口文件中,引入 commander
和 commander-tabtab
。
-- -------------------- ---- ------- -------------- ---- ----- --------- - --------------------- ----- ------ - ---------------------------- --------------------------- -- ------ -- --- -- -- ------ ------ ------------------------------
然后,你需要定义你的命令和选项,并选择设置哪些选项需要自动补全。例如,如下代码定义了三个命令 command1
、command2
和 command3
,其中 command1
和 command2
拥有相同的选项。
-- -------------------- ---- ------- --------- -------------------- ------------ ---------------- -------- ------------ ----------------- -------- --------- -------------------- ------------ ---------------- -------- ------------ ----------------- -------- --------- --------------------
接着,你需要告诉 commander-tabtab
哪些选项需要自动补全。为此,你需要提供一个通用函数,它会为 commander
中的每个选项生成自动补全项。这个函数会接收两个参数:选项名称和选项值的数组。
-- -------------------- ---- ------- --------------------- ------ -- - -- ---------- ------------- -- ----------- - -- - -- ---------- ------ --------- --------- ---------- - --- --------------------- ------ -- - -- ---------- ------------- -- ----------- - -- - -- ------- ------ ---------- --------- ---------- - ---
最后,你需要调用 tabtab.complete
与你的程序名(即在程序包的 package.json
文件中的 bin
)来启用自动补全功能。然后你就可以在命令行界面上体验到这个功能啦!
$ ./my-program c[TAB] command1 command2 command3 $ ./my-program command1 -[TAB] -a --first-option -b --second-option $ ./my-program command1 -a a[TAB] apple banana orange $ ./my-program command2 -a val[TAB] value1 value2 value3
这就是通过 commander-tabtab
实现命令行界面应用自动补全的整个流程。
示例
下面是一个示例,用于解释如何在实际项目中使用 commander-tabtab
。
我们希望使用 my-program
创建一个订单系统应用(即 my-program create-order
),创建订单后,可以通过 my-program view-order [order-id]
查看该订单详情。为此,我们首先使用 commander
定义了这两个命令的 option 和选项:
-- -------------------- ---- ------- ----- --------- - --------------------- ----- ------ - ---------------------------- ----- -------- - ----------------------- --------- ----------------- --------- ------------------------ ------------ ------ -------- ------ ------------ ---------- ----- ----- --------- --------- -------------------- ------
现在,我们需要告诉 commander-tabtab
命令行界面应用程序自动补全,需要自动补全的命令和命令选项:
-- -------------------- ---- ------- -- -- ---------------- ---- ------------ -- ------------------------- ------ -- - -- ----------- -- ----------- - -- - -- ------------ ----- ----- - -------------------- ------ ------ - --- -- -- ---------------- ---- ------ -- --------------- ------ -- - -- ------------ -- ----------- - -- - -- ------------ ----- ----- - -------------------- ------ ------ - --- -- -- ---------------- ---- ---------- -- ----------------------- ------ -- - -- ---------- -- -- ----------- - -- - -- ------------ ----- --- - ----------------------- ------ ---- - ---
这时,现在你的程序将可以产生如下自动补全:
$ my-program c[TAB] create-order $ my-program create-order -i [TAB] item1 item2 item3 ... $ my-program view-order [TAB] order-001 order-002 order-003 ...
这就是 commander-tabtab
如何应用在实际项目中的一个案例。
总结
commander-tabtab
为我们提供了一个快速、轻松的方式来实现自动补全命令和命令选项。它可以大大提高我们的工作效率和代码质量,为用户带来更好的命令行界面体验。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/68741