nodejs之minimist中介軟體使用
阿新 • • 發佈:2019-01-10
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' }