https://github.com/tj/commander.js
基本使用
# fisd init --feprogram.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)
输出帮助信息的同时不退出
