1. 程式人生 > >nodejs之minimist中介軟體使用

nodejs之minimist中介軟體使用

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' }