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高手


脉冲云_梁兴臣
616 声望194 粉丝

脉冲云CTO,JS全栈开发,DevOps实施,开发体验优化,开发效率提升