介绍
neodoc 是一个由 Haskell 编写的命令行参数解析库,其设计初衷是为了解决别名参数和简短选项的问题。neodoc 具有以下几个特点:
- 可以非常方便地包含必选参数、可选参数和标志参数。
- 允许用户指定与每个参数相关联的方法,以便在参数解析器执行时调用。
- 如果未指定参数解析出现问题,neodoc 将提供有用的反馈。
在本文中,我们将详细介绍如何使用 neodoc。
安装
neodoc 可以通过 npm 安装:
npm install neodoc
使用
在使用前,我们需要按照以下方式导入所需的包:
const { run, command, string, flag, option } = require('neodoc');
例如,我们可以定义一个使用 neodoc 解析的命令行:
-- -------------------- ---- ------- ----- ---- - ----- ------ ---------- ------- ------------------- ------ --- ---------- ------- - ---------- -------- --- ------ ---- ---- ------- --- --------- ------- ----- --- ------- ----- ----- --- -------- ------ ----- ----------------- --- ----- --------- ---- -------- ---
上述代码中,我们使用了 run
函数将参数解析器应用于命令行。参数解析器值得包括了两个部分:命令描述和实际程序参数。在上述例子中,命令描述使用 Markdown 标记语言编写,并包含程序所需的选项和帮助信息。实际程序参数包括所有在命令行上指定的选项和标志。
例如,如果我们执行以下命令,则将触发参数解析:
node my-program.js -v --log-file=my-log-file.txt my-file1.txt my-file2.txt
在上述例子中,args
变量将包含以下内容:
-- -------------------- ---- ------- - --------- ------ ------------ ------ ------------ ----- ---------- ------ ----------- ------ ------------- ------------------ --------- ---------------- --------------- -
深度学习
现在我们来看一些更细致的例子。
假设我们想编写一个 MD5 散列函数的命令行工具。我们可以编写如下参数解析器:
-- -------------------- ---- ------- ----- ---- - ----- ------ ------ --------- ------ --- -------- --- ------ ---- ---- ------ --- --------- ---- ------- --- -------------- ------- ------ ------ ----- ---- ------- --- -------- ------ ------- ----- -- - ------------- ---- --- -- ---------------- - --------------------------- - ---- -- ------------------- - ------------------- ------- -------- - ---- - --- ------ - ---------------- -- ------ --- ----- - --------------- --- - --- ------- - -------------------------- -- - ------ -------------- ---------- -- ------- --- ------ - ---- - --------------------- --------- -- ------- ---------- ---- -------------------------- - ----- ----- - --------------------- ----------- ----------------------------- ---------------- - -
在上述例子中,我们定义了命令 md5sum
,可以让我们指定要计算散列值的文件。我们还定义了选项 -h
和 -v
,用于显示帮助和版本信息。 -f
参数用于指定输出格式。最后,我们设置了一个标志 -i
,表示忽略缺少的文件。
无论我们想调用什么参数解析器,最好的方法是编写一个单独的函数。例如:
-- -------------------- ---- ------- -------- ------------ - -- ---------------- - ------ -------------- - ---- -- ------------------- - ------ ------- ------- ------- - ---- - --- ------ - ---------------- -- ------ --- ----- - --------------- --- - --- ------- - -------------------------- -- - ------ -------------- ---------- -- ------- --- ------ - ---- - --------------------- --------- -- ------- ---------- ---- -------------------------- - ----- ----- - --------------------- ----------- ----------------------------- ---------------- - - -
现在,我们可以像这样使用它:
-- -------------------- ---- ------- ----- ---- - ----- ------ ------ --------- ------ --- -------- --- ------ ---- ---- ------ --- --------- ---- ------- --- -------------- ------- ------ ------ ----- ---- ------- --- -------- ------ ------- ----- -- - ------------- ---- --- --------------------------
使用上面的 md5sum
函数,我们就能够将参数解析器与容易维护的应用程序代码分开。如果应用程序是更大的项目的一部分,或者如果应用程序维护了多个命令,这种分离是非常有用的。
指导意义
通过学习 neodoc,我们可以看到它有以下几个优势:
- 它是一个轻量级的库,可以轻松解决命令行参数解析的问题。
- 它允许我们轻松地将参数解析器与应用程序功能分开。
- 可以用 Markdown 编写命令描述,易于更新和维护。
因此,我们强烈建议在处理命令行的时候,考虑使用 neodoc。它是一个灵活好用的工具,可以让我们快速构建出健壮和易用的命令行工具。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/70882