npm 包 argumentum 使用教程

在前端开发中,有很多场景需要从命令行中获取参数,例如打包工具的配置参数、调试工具的调试参数等等。为了方便地获取参数,并且不需要开发者自己处理参数的解析,就可以使用 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 使用简单易学、功能丰富、可定制化和可扩展性强,能够满足开发者对命令行工具参数的大多数需求。

参考示例代码:

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

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

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

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

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

参考链接:

  1. argumentum
  2. Node.js documentation
  3. Node.js documentation

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


猜你喜欢

  • npm 包 ir-clone 使用教程

    简介 ir-clone 是一个轻量级的库,可以帮助你深度复制 JavaScript 对象。 在 JavaScript 中,当通过赋值或传递参数的方式进行对象传递时,对象的引用会被传递而不是对象本身。

    5 年前
  • npm 包 donejs-node-web-streams 使用教程

    在前端开发中,使用 Node.js 做服务器端处理已经是非常常见的场景了,而 donejs-node-web-streams 这个 npm 包则是为了方便我们在 Node.js 中使用 web str...

    5 年前
  • npm 包 done-mutation-observer 使用教程

    前端开发中,经常需要监听 DOM 元素的增删改操作,以便对页面进行动态更新。在这一领域,MutationObserver 是一个非常有用的 API。而 done-mutation-observer 是...

    5 年前
  • npm 包 can-sort-object 使用教程

    前言 在编写前端应用时,对象排序是一个常见的需求。JavaScript 中提供了一些 array 的方法用以排序,但是这些方法只能对数组进行排序。针对对象的排序,我们可以通过自己编写排序算法实现。

    5 年前
  • npm 包 can-memory-store 使用教程

    在前端开发中,使用缓存技术可以提高网站的性能和用户体验。can-memory-store 是一个 npm 包,可以在前端使用内存缓存技术,提高应用程序的效率。在本文中,我们将详细介绍 can-memo...

    5 年前
  • npm 包 can-set-legacy 使用教程

    在前端开发中,数据查询和筛选是非常常见的需求。如果每次都手动处理数据,不仅工作量巨大,而且还容易出错。Can-set-legacy 是一个强大的 npm 包,它提供了一些灵活的 API 和算法,帮助我...

    5 年前
  • npm 包 can-query-logic 使用教程

    can-query-logic 是一个轻量级的 npm 包,提供了存储器和查询器之间交互的功能。使用 can-query-logic,我们可以在存储器和查询器之间传递 SQL 类型的查询参数,这极大地...

    5 年前
  • npm 包 can-fixture 使用教程

    简介 can-fixture 是一个前端模拟数据工具,能够帮助开发人员在前端的开发环境中,快速的模拟出后端的接口请求,并返回指定的数据。can-fixture 主要是为了开发人员在前端在开发阶段,解决...

    5 年前
  • npm 包 done-css 使用教程

    简介 done-css 是一个基于 SCSS 的样式库,提供了一系列常用的 CSS 样式,方便开发人员进行快速开发。在前端开发中,CSS 样式表是必不可少的一部分,使用 done-css 可以省去进行...

    5 年前
  • npm 包 done-ssr 使用教程

    介绍 done-ssr 是 npm 上的一个包,是可以使用的全栈 JavaScript 应用程序的服务器端渲染解决方案。这个包提供了一个简单的 API,使得可以较为容易的在 node.js 环境中运行...

    5 年前
  • npm 包 kill-on-exit 使用教程

    介绍 kill-on-exit 是一个 Node.js 模块,可以在 Node.js 进程终止时执行定制化的代码。它可以用于清理资源,删除临时文件,关闭 web 服务器等。

    5 年前
  • npm 包 can-route-pushstate 使用教程

    作为一名前端开发人员,你肯定经常使用 npm 包。今天我们要介绍的是 can-route-pushstate,一个可在客户端改变 URL 的 JavaScript 库。

    5 年前
  • npm 包 can-route 使用教程

    随着前端应用的日益复杂,前端路由的使用也变得十分普遍。can-route 是一个出色的 npm 包,它提供了一种方便的方式来管理前端路由。在本文中,我们将介绍 can-route 的使用方法和示例。

    5 年前
  • NPM 包 can-event 的使用教程

    在前端开发中,事件是不可避免的部分。随着应用程序变得越来越复杂,对于事件的处理和管理也变得越来越重要。can-event 是一个 Node.js 模块,它提供了一种方便的方式来管理应用程序中的事件。

    5 年前
  • npm 包 can-observe 使用教程

    一、什么是 can-observe can-observe 是一个用于观察数据变化的 npm 包,它可以方便地跟踪对象属性的变化,并且自动响应数据变化。can-observe 可以用于构建可维护和可扩...

    5 年前
  • npm 包 can-component 使用教程

    简介 can-component 是一个基于 CanJS 框架的 npm 包,用于创建自定义组件并进行组件化开发。在前端开发中,组件化开发已经成为非常重要的一项技能,能够提高代码的复用性和可维护性。

    5 年前
  • npm 包 can-child-nodes 使用教程

    在前端开发中,我们常常需要在 DOM 结构中寻找一个节点的所有子元素。而 can-child-nodes 就是一款可以快速帮助我们获取一个节点的所有子元素的 npm 包。

    5 年前
  • npm 包 can-reflect 使用教程

    前言 can-reflect 是由 CanJS 团队开发的 npm 包,用于实现对象的反射和操作。can-reflect 提供了一些工具函数,如检查对象是否可以迭代,获取对象的键和值等。

    5 年前
  • npm 包 can-namespace 使用教程

    在现代的前端开发中,许多团队使用 npm 包管理器进行代码的维护和管理。其中一个常用的 npm 包是 can-namespace,该包可以帮助我们更好地组织 JavaScript 代码,并且能够带来一...

    5 年前
  • npm 包 can-log 使用教程

    在前端开发中,我们经常需要记录日志以便于调试和排错。can-log 是一个小巧且灵活的 npm 包,可以帮助我们实现统一的日志记录方案。本文就为大家介绍 can-log 的使用教程。

    5 年前

相关推荐

    暂无文章