资讯专栏INFORMATION COLUMN

NPM酷库:minimist,命令行参数解析

eternalshallow / 1994人阅读

摘要:酷库,每天两分钟,了解一个流行库。昨天我们了解的库用于从文件中加载环境变量。虽然从中可以得到启动参数列表,但是我们仍需要对参数进行进一步解析处理才行。

NPM酷库,每天两分钟,了解一个流行NPM库。

昨天我们了解的dotenv库用于从文件中加载环境变量。环境变量用于程序运行时动态加载参数,除了环境变量,我们还可以在启动Node.js 程序时直接指定命令行参数:

node index.js --beep=boop -t -z 12 -n5 foo bar 

Node.js 程序启动后可以直接从process.argv中读取到参数列表:

console.log(process.argv);
// ["/bin/node", "/tmp/index.js", "--beep=boop", "-t", "-z", "12", "-n5", "foo", "bar"]

从上述代码中可以看到,process.argv 变量是一个数组,数组前两项分别是 node 程序位置和js脚本位置,数组中随后的元素都是我们启动Node.js后的参数,这些参数以空格分隔成数组。

虽然从 process.argv 中可以得到启动参数列表,但是我们仍需要对参数进行进一步解析处理才行。

minimist

minimist 是一个专门用于处理Node.js启动参数的库,可以将 process.argv 中的参数列表转换成更加易于使用的格式:

const argv = require("minimist")(process.argv.slice(2));
console.dir(argv);
// { _: [ "foo", "bar" ], beep: "boop", t: true, z: 12, n: 5 }

经过 minimist 解析的process.argv是一个对象,例如,我们可以直接从访问 argv.beep 得到 --beep=boop 参数的值。

参考资料

https://github.com/substack/m...

欢迎关注公众号:梁兴臣

每天了解一个NPM库,一年后成为Node.js高手

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92497.html

相关文章

  • NPM酷库:commander,命令参数处理框架

    摘要:酷库,每天两分钟,了解一个流行库。昨天,我们学习的库,用于解析命令行参数,能将参数数组转换为一个更易于访问的对象。今天,我们继续学习一个更加强大的命令行参数处理库。 NPM酷库,每天两分钟,了解一个流行NPM库。 昨天,我们学习的minimist库,用于解析Node.js命令行参数,能将参数数组process.env.argv 转换为一个更易于访问的对象。 今天,我们继续学习一个更加强...

    dendoink 评论0 收藏0
  • 从 1 到完美,用 node 写一个命令工具

    摘要:从到完美,用写一个命令行工具中的字段现在,不管是前端项目还是项目,一般都会用做包管理工具,而是其相关的配置信息。又一个让命令行与用户进行交互的工具与功能差不多。比较常用的命令行命令行相关的应用就很多啦,比如等,但这些不仅仅是命令行工具。 从 1 到完美,用 node 写一个命令行工具 1. package.json 中的 bin 字段 现在,不管是前端项目还是 node 项目,一般都会...

    YorkChen 评论0 收藏0
  • gulp自动化打包(上)

    摘要:自动化打包上文章概述本文分为上下两篇,上篇主要介绍一些常用的插件也是此次打包主要用的插件,而下篇主要以一个项目为例,从本地出合适的版本,压缩合并到最后打成包,发送至指定目录,做一个全面的演示。 gulp自动化打包(上) 文章概述 本文分为上下两篇,上篇主要介绍一些常用的gulp插件(也是此次打包主要用的gulp插件),而下篇主要以一个demo项目为例,从本地checkout出合适的g...

    roland_reed 评论0 收藏0
  • 通用、封装、简化 webpack 配置

    摘要:通用封装简化配置现在,基本上前端的项目打包都会用上,因为提供了无与伦比强大的功能和生态。简化配置的一种方式是使用社区封装好的库,比如。封装了的一些基础配置,然后暴露一些额外配置的接口,并附加本地数据模拟功能,详情可以参考主页。 通用、封装、简化 webpack 配置 现在,基本上前端的项目打包都会用上 webpack,因为 webpack 提供了无与伦比强大的功能和生态。但在创建一个项...

    PingCAP 评论0 收藏0
  • NPM酷库052:sax,按流解析XML

    摘要:酷库,每天两分钟,了解一个流行库。在酷库中,我们学习了如何使用库将格式文档字符串解析为的对象数据,本期,我们继续学习,一个可以以流编程的方式解析。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在NPM酷库051中,我们学习了如何使用xml2js库将XML格式文档字符串解析为JavaScript的对象数据,本期,我们继续学习sax,一个可以以流编程的方式解析XML。 使用流编程的方...

    pinecone 评论0 收藏0

发表评论

0条评论

eternalshallow

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<