https://github.com/tj/commander.js
基本使用
# fisd init --fe
program
.command('init')
.description('安装开发环境')
.option('-f,--fe', 'FE同学特需的本地开发调试能力')
.action(function(option){
// option.fe // 如果 fisd init --fe 则 option.fe=true
});
.on('--help', function() {
//针对 fisd init --help 打印一些 帮助指南
})
# fisd release orp --remote=''
program
.command('release [env]') // release后表示接受的参数 []可选 <>必选
.description('安装开发环境')
# <> 表示 fisd release orp --remote='' 必须要跟上参数 --remote
.option('-R,--remote <url>', '远程机器url', 'xxxx.php') 第三个参数表述默认
.action(function(env, option){
// env = orp
// option.remote
});
.on('--help', function() {
//针对 fisd init --help 打印一些 帮助指南
})
命令解析 program.parse(process.argv);
program.parse(arguments)会处理参数,没有被使用的选项会被存放在program.args数组中。
command
针对命令的操作,可以action绑定回调。可以单独写成可执行文件
// 通过绑定操作处理程序实现命令 (这里description的定义和 `.command` 是分开的)
// 返回新生成的命令(即该子命令)以供继续配置
program
.command('clone <source> [destination]')
.description('clone a repository into a newly created directory')
.action((source, destination) => {
console.log('clone command called');
});
// 通过单独分离的可执行文件实现命令 (注意这里description是作为 `.command` 的第二个参数)
// 返回最顶层的命令以供继续添加子命令
program
.command('start <service>', 'start named service')
.command('stop [service]', 'stop named service, or all if no name supplied');
当 .command()
带有描述参数时,不能采用 .action(callback)
来处理子命令
未知命令
program
.command('*')
.action(function(env){
console.log('deploying "%s"', env);
})
命令行信息输出
.name(“my-command”)
.usage(“[global options] command”)
program
.name("my-command")
.usage("[global options] command")
===>
Usage: my-command [global options] command
.outputHelp(cb)
输出帮助信息的同时不退出