commander的用法

// 写在顶部,运行在node环境
#!/usr/bin/env node 

const commander = require('commander')
commander
    .command('rm <dest> [otherDirs...]') // <dest>:目标参数;[otherDirs...]:可选参数
    .alias('r') // rm的别名
    .option('-r, --recursive', 'Remove recursively') // 默认cmd.recursive为
    .option('-d --drink <val1> [val2]', 'Drink', 'Beer') 
    // --drink中的drink为cmd.drink的key;
    // <val1>为必选参数,会赋值给drink,-d后面必须写参数,否则会报错;
    // [val2]为可选参数,会赋值给drink,可不传;
    // 'Drink'为描述;
    // 'Beer'为drink的初始值,会被<>或者[]覆盖;
    .action(function (d, otherD, cmd) {
        console.log('remove ' + d , cmd, cmd.drink, cmd.recursive)
        if (otherD) {
            otherD.forEach(function (oDir) {
                console.log('rmdir %s', oDir);
            });
        }

    })
commander.parse(process.argv)

以下为各个情况的打印结果:


测试结果

找的比较详细的资料:

  1. Commander写自己的Nodejs命令
  2. Nodejs开发简单的脚手架工具
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容