commander的用法

2021-07-20  本文已影响0人  codingQi
// 写在顶部,运行在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开发简单的脚手架工具
上一篇下一篇

猜你喜欢

热点阅读