nodejs之minimist中间件使用

本文介绍了minimist,一个流行的Node.js命令行参数解析库。它支持短选项、长选项、自动转换Boolean和Number类型以及选项别名。通过示例代码展示了minimist的解析流程,解析时按long options和short options的顺序匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

minimist是nodejs的命令行参数解析工具,因其简单好用,轻量等特性,所以用户使用较多。
特性:
- short options
- long options
- Boolean 和 Number类型的自动转化
- option alias
先看一下minimist整体的解析过程,代码大致是:

or (var i = 0; i < args.length; i++) {
    var arg = args[i];

    if (/^--.+=/.test(arg)) {
        ...
    } else if (/^--no-.+/.test(arg)) {
        ...
    } else if (/^--.+/.test(arg)) {
        ...
    } else if (/^-[^-]+/.test(arg)) {
        ...
    } else {
        ...
    }
}

解析过程中,minimist会依次匹配不同的模式,从long options到short options,匹配之后再进行相应的解析工作。
使用方式:

var parseArgs = require('minimist');
var startParams = parseArgs(argv,opts={})
opts的参数:
    opts.string :字符串或字符串参数名称数组,始终视为字符串
    opts.boolean:一个布尔值,字符串或字符串数​​组,始终视为布尔值。if true会将没有等号的所有双连字符参数视为布尔值(例如,影响--foo,不是-f或--foo=bar)
    opts.alias:将字符串名称映射到字符串或字符串参数名称数组以将其用作别名的对象
    opts.default:将字符串参数名称映射为默认值的对象
Example:
const startParams = require('minimist')(process.argv.slice(2),{
    string : ['port', 'language' ],//key=port|language返回的就是value的字符串
    boolean: ['debug'],//debug参数的value有就对应ture,无就对应false
    alias: {
        port: 'p',//port在解析的时候,会对应返回的是p
        language: 'l',
    },
    default: {
        NODE_ENV: 'dev'//默认设置的值
    }
})
console.log(process.argv.slice(2))
console.log("----------------------");
console.log(startParams);
启动命令:
 D:\StudeyCode\myStudy\myappWx> node .\src\config\index.js --debug=Enble --out=22 --port=3030 --language=cn
 输出结果
[ '--debug=Enble', '--out=22', '--port=3030', '--language=cn' ]
----------------------
{ _: [],
  debug: 'Enble',
  out: 22,
  port: '3030',
  p: '3030',
  language: 'cn',
  l: 'cn',
  NODE_ENV: 'dev' }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值