在前端开发中,有很多场景需要从命令行中获取参数,例如打包工具的配置参数、调试工具的调试参数等等。为了方便地获取参数,并且不需要开发者自己处理参数的解析,就可以使用 npm 包 argumentum。
argumentum 简介
argumentum 是一个 Node.js 模块,用于处理命令行参数。argumentum 可以解析参数、验证参数、提供帮助信息等功能,并且非常易于使用。
argumentum 的特点:
- 简单易用:argumentum 的 API 设计非常友好,学习和使用都非常方便。
- 功能丰富:argumentum 可以处理很多命令行参数场景,包括可选参数、必填参数、默认参数等等。
- 定制化强:argumentum 可以根据需求配置参数解析器、参数验证器等等。
- 可扩展性好:argumentum 有很多插件,可以根据需求选择性地引入,扩展 argumentum 的功能。
安装及基本使用
安装
使用 npm 安装 argumentum:
- --- ------- ---------- ------
基本使用
引入 argumentum:
----- ---------- - ----------------------
配置参数解析及处理
----- ---- - --- ------------ -------- - - ----- ------- ---------- ---- ----- -------- ---- ------------- -- - ----- ------- ---------- ---- ----- ----- ------- -------- ------------ --------- ---- -- - ----- --------- ---------- ---- ----- ------- ---- ------ - -- ------ ----- ---- ----- -- ------- -------- -- ------ --- ------------- -- ------------------ - ------------------------- ---------------- - -------------------- ------------------ ---------------------- --------------------
命令行执行:
- ---- -------- --
输出:
------ ---- ---- ----- -- ------- -------- -- ----- -------- ------- -- ---- ----- --------- -------- --------- --------- -- ------ ---- ----- ------- -- ------- ---- ------------
参数类型
argumentum 有三种参数类型:flag、option、command。
flag
flag 是表示“是”或“否”的参数,通常用于开启或关闭某项功能。
flag 类型参数的定义如下:
- ----- ------- -- ---------- ---------- ------- -- ---------- ----- ------ -- -------------- -
例如:
- ----- ---------- ---------- ---- ----- -------- ------- -------- -
在命令行中指定 verbose 参数,表示开启 verbose 输出:
- ---- -------- --
option
option 是表示具体数值的参数,可以是字符串、数字等类型。
option 类型参数的定义如下:
- ----- ------- -- ---------- ---------- ------- -- ---------- ----- ------- -- -------------- --------- -------- -- ------------- ----- -------- ---- -- ------------ --------- --------- -------- -- ----------- -
例如:
- ----- ------- ---------- ---- ----- ----- ------- -------- ------------ --------- ---- -
在命令行中指定与 option 参数对应的值,例如:
- ---- -------- ------------
command
command 是表示命令的参数,常常在复杂的命令行工具中使用。
command 类型参数的定义如下:
- ----- ------- -- ---------- ----- ------ -- -------------- -
例如:
- ----- -------- ----- ------ --- --------- -
在命令行中使用命令参数:
- ---- -------- -----
参数解析
argumentum 支持两种方式解析参数:process.argv 和命令行字符串。默认情况下,argumentum 会使用 process.argv 进行参数解析。
使用 process.argv 解析参数
process.argv 是 Node.js 中内置的全局变量,表示当前进程的命令行参数数组。
例如,以下代码解析命令行参数:
-- ---------- -------- -- ------- -- ----- ---- - --- ------------ -------- - - ----- ------- ---------- ---- ----- ----- ------ -- - ----- ---------- ---------- ---- ----- -------- ------- -------- - - --- ------------- ------------------------------ -- ------- --------------------------------- -- ----
其中 args.parse()
会使用 process.argv 解析参数。
使用命令行字符串解析参数
除了使用 process.argv,argumentum 还支持使用自定义的命令行字符串进行参数解析。
例如,以下代码解析命令行参数:
----- ---------- - --- ------- ---- ----- ---- - --- ------------ -------- - - ----- ------- ---------- ---- ----- ----- ------ -- - ----- ---------- ---------- ---- ----- -------- ------- -------- - - --- ----------------------- ------------------------------ -- ------- --------------------------------- -- ----
参数验证
argumentum 支持自定义参数验证器,用于验证参数的合法性。每个选项(option)都可以设置一个验证器,验证器是一个函数,接受两个参数:选项值和选项本身。
例如,以下代码解析命令行参数,并且验证 file
参数的合法性:
----- ---- - --- ------------ -------- - - ----- ------- ----- ----- ------- --------- ------- ------- -- - -- ----------------------- - ----- --- ----------- ---- ---------- ---- --- --------- - - - - --- ------------- ------------------------------
在选项设置了验证器之后,当传入的参数不合法时,会抛出自定义的异常信息。
使用插件
argumentum 提供了很多插件,用于扩展 argumentum 的功能,例如:argumentum-version、argumentum-help 等等。这些插件可以在 argumentum 配置过程中进行引入,从而增强 argumentum 的功能。
例如,以下代码引入了 argumentum-version 插件,用于输出版本号信息:
----- ---------- - ---------------------- ----- ------- - ---------------------------------- ----- ---- - --- ------------ -------- - - ----- ---------- ----- -------- ------- -------- - - --- --------------------------------------- --------- ------------- --------------------------------- ---------------------------------
在命令行中执行:
- ---- -------- ---------
可以输出:
-----
除了 argumentum-version,argumentum 还提供了很多其他插件,可以根据需求选择性地引入。
总结
argumentum 是 Node.js 中一款非常好用的命令行参数处理工具,可以用于处理参数解析、参数验证、帮助信息等功能。argumentum 使用简单易学、功能丰富、可定制化和可扩展性强,能够满足开发者对命令行工具参数的大多数需求。
参考示例代码:
----- ---------- - ---------------------- ----- -- - -------------- ----- ---- - --- ------------ -------- - - ----- ------- ---------- ---- ----- -------- ---- ------------- -- - ----- ------- ---------- ---- ----- ----- ------- -------- ------------ --------- ----- --------- ------- ------- -- - -- ----------------------- - ----- --- ----------- ---- ---------- ---- --- --------- - - -- - ----- --------- ---------- ---- ----- ------- ---- ------ -- - ----- ---------- ---------- ---- ----- -------- ------- -------- - -- ------ ----- ---- ----- -- ------- -------- -- ------ --- ------------- -- ------------------ - ------------------------- ---------------- - -------------------- ------------------ ---------------------- -------------------- ----------------------- ---------------------
参考链接:
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/75921