commander
命令行参数解决方案
https://github.com/tj/commander.js/blob/HEAD/Readme_zh-CN.md
术语 | 解释 |
---|---|
选项(option) | - 后跟单个字母,或-- 后跟单词(或以- 连接的多个单词),例如-s及—short |
选项参数(option-argument) | 有的选项可以接受一个参数 |
命令(command) | 一个程序或命令可以包含子命令 |
命令参数(command-argument) | 传给命令的参数(不包含选项或选项参数) |
option
- 不配置参数,则是布尔值
- 设置参数,未指定的话为undefined ```jsx const { program } = require(‘commander’);
program
.option(‘—first’)
.option(‘-s, —separator
program.parse();
const options = program.opts(); const limit = options.first ? 1 : undefined; console.log(program.args[0].split(options.separator, limit));
```bash
node split.js -s / --first a/b/c
[ 'a' ]
minimist
命令行参数解析
https://github.com/substack/minimist
var argv = require('minimist')(process.argv.slice(2));
console.log(argv);
const args = require('minimist')(process.argv.slice(2))
node test.js -a a -b b
// args: {_: [], a: 'a', b: 'b'}
node test.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz
// { _: [ 'foo', 'bar', 'baz' ],
// x: 3,
// y: 4,
// n: 5,
// a: true,
// b: true,
// c: true,
// beep: 'boop' }
minimist会解析参数,并放到一个对象中。_ 是个数组,存的所有没有关联选项的参数