npm install commander --save
-V
和--version
(1)只传入版本信息
// index.js
const program = require('commander');
program
.version('1.0.0')
.parse(process.argv);
复制代码
node index.js -V
或者 node index.js --version
得到版本号。(2)自定义flag
// index.js
const program = require('commander');
program
.version('1.0.0', '-v, --version')
.parse(process.argv);
复制代码
--version
不能被省略node index.js -v
或者 node index.js --version
得到版本号。<>
定义必需参数,[]
定义可选参数-h
或者--help
时会显示(1)定义多个选项
// index.js
const program = require('commander');
program
.version('1.0.0')
.option('-a, --add', 'add Something')
.option('-u, --update', 'update Something')
.option('-r, --remove', 'remove Something')
.parse(process.argv);
console.log('You choose: ');
if (program.add) console.log(' add Something');
if (program.update) console.log(' update Something');
if (program.remove) console.log(' remove Something');
复制代码
-
,长flag使用--
program.XXX
可以得到输入的选项node index.js -a
或者node index.js --add
会打印You choose: add Something(2)多单词形式
// index.js
const program = require('commander');
program
.version('1.0.0')
.option('--add-file', 'add a file')
.parse(process.argv);
if (program.addFile) console.log('add a file')
复制代码
node index.js --add-file
会打印add a file(3)以--no
形式开头的选项,代表后面紧跟单词的相反面
// index.js
const program = require('commander');
program
.version('1.0.0')
.option('--no-add', 'not add a file')
.parse(process.argv);
if (program.add) console.log('add a file')
else console.log('not add a file')
复制代码
node index.js --no-add
会打印not add a file(4)选项后面使用<>或[]
// index.js
const program = require('commander');
program
.version('1.0.0')
.option('-a, --add <fileName>', 'add a file')
.parse(process.argv);
console.log('add a file named: ' + program.add)
复制代码
node index.js -a demo.js
会打印add a file named: demo.js<>
和[]
定义参数const program = require('commander');
program
.version('1.0.0')
.command('my-cli <path>')
.option('-a, --add <fileName>', 'add a file')
.option('-u, --update <fileName>', 'update a file')
.option('-r, --remove <fileName>', 'remove a file')
.action(function(path, cmd) {
console.log(path)
console.log(cmd.add)
})
program.parse(process.argv);
复制代码
action
后会开启输入的选项校验,若输入了未定义的选项,则抛出错误node index.js my-cli C -a demo.js
会打印C demo.js// index.js
const program = require('commander');
program
.version('1.0.0')
.description('It is my cli')
.parse(process.argv);
复制代码