NPM酷库,每天两分钟,了解一个流行NPM库。
昨天,我们学习的minimist库,用于解析Node.js命令行参数,能将参数数组process.env.argv
转换为一个更易于访问的对象。
今天,我们继续学习一个更加强大的命令行参数处理库commander。
commander
commander 是一个命令行参数处理的完整的解决方案,不仅仅包含参数数组的解析转换,更支持如下特性:
- 参数格式正则匹配
- 可变数量参数列表
- 参数默认值
- 参数别名支持
- 可定义参数语法
- 子命令支持
- 自定义帮助信息输出
应用实例:
const program = require('commander');program .version('0.1.0') .option('-C, --chdir', 'change the working directory') .option('-c, --config ', '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); });
参考资料
欢迎关注公众号:梁兴臣
每天了解一个NPM库,一年后成为Node.js高手