NPM酷库,每天两分钟,了解一个流行NPM库。
昨天,我们学习的minimist库,用于解析Node.js命令行参数,能将参数数组process.env.argv
转换为一个更易于访问的对象。
今天,我们继续学习一个更加强大的命令行参数处理库commander。
commander
commander 是一个命令行参数处理的完整的解决方案,不仅仅包含参数数组的解析转换,更支持如下特性:
- 参数格式正则匹配
- 可变数量参数列表
- 参数默认值
- 参数别名支持
- 可定义参数语法
- 子命令支持
- 自定义帮助信息输出
应用实例:
const program = require('commander');
program
.version('0.1.0')
.option('-C, --chdir <path>', 'change the working directory')
.option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
.option('-T, --no-tests', 'ignore test hook');
program
.command('setup [env]')
.description('run setup commands for all envs')
.option("-s, --setup_mode [mode]", "Which setup mode to use")
.action(function(env, options){
let mode = options.setup_mode || "normal";
env = env || 'all';
console.log('setup for %s env(s) with %s mode', env, mode);
});
参考资料
https://github.com/tj/command...
http://tj.github.io/commander...
欢迎关注公众号:梁兴臣
每天了解一个NPM库,一年后成为Node.js高手
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。