npm i commander
var program = require("commander");
program
.version('0.0.1');
.parse(process.argv);
// 执行结果
node index.js -V
0.0.1
#如果希望程序响应 -v 选项而不是 -V,只需使用与option方法相同的语法将自定义标志传给version方法
program.version('0.0.1', '-v, --version')
#如果不想在这里自定义,也可以通过package.json文件来获取
program.version(require('./pacjage.json').version)
var program = require("commander");
program
.option('-d --destination <destination>','a destination folder')
.parse(process.argv);
option
方法可以接收三个参数:
必须
:分为长短标识,中间用逗号、竖线或者空格分隔;标志后面可跟必须参数或可选参数,前者用<>
包含,后者用[]
包含省略不报错
:在使用 --help 命令时显示标志描述可省略
:当没有传入参数时会使用默认值该方法允许使用命令行去执行一段命令(添加命令名称)
var program = require('commander');
program
.version('0.0.1', '-V, --version');
.command('rm <dir>');
.action(funvtion (dir, cmd){
console.log('remove ' + dir + (cmd.recursive ? 'recursively' : ''))
});
program.parse(process.argv);
// 执行命令
// node index rm /aaa -r
// 输出结果
// remove /aaa recursively
command
函数可以接受三个参数:
必须
:命令后面可跟用<>
或[]
包含对参数,命令的最后一个参数可以是可变的可省略
:如果存在,且没有显示调用action(fn)
,就回启动子命令程序,否则会报错可省略
:可配置 noHelp,isDefault定义命令的别名,描述和用法
const program = require("commander");
program
.alias('c')
.usage('[clone] <file ...>')
.description('clone respository into a folder')
定义命令的回调函数,.action(fn)
// index.js
const program = require("commander");
const {createProjectAction} = require("./actions");
program
.command('create <project> [others...]')
.description('clone respository into a folder')
.action(createProjectAction)
// actions.js
const {promisify} = require("util");
const createProjectAction = async (project) => {
}
module.exports = createProjectAction;
可以通过监听 --help 来控制 -h,–help显示任何消息。调用完成后,commander将自动退出,程序的其余部分不会展示
var program = require('commander');
program.version('0.1.0');
// 增加自己的options
program.option('-l --lemon', 'a lemon test');
program.option('-d --destination <destination>','a destination folder');
program.option('-f --framework <framework>', 'your framework');
// 增加其他的options
program.on('--help', function(){
console.log("");
console.log("Other:");
console.log(" other options");
})
/* 输出
Options:
-l --lemon a lemon test
-d --destination <destination> a destination folder
-f --framework <framework> your framework
Other:
other options
*/
输出帮助信息而不退出,回调cb允许在显示帮助文本之前对其进行后处理,如果要在默认情况下显示帮助,可以使用下面:
var program = require('commander');
var color = require('colors');
program.version('0.1.0');
program..command('getstream [url]', 'get stream URL'')
program.parse(process.argv);
if (!process.argv.slice(2).length) {
program.outputHelp(make_red);
}
function make_red(txt) {
return colors.red(txt);
//display the help text in red on the console
}