天天看點

commander.js基本用法

準備工作

  • 安裝nodejs
  • 安裝commander.js,執行

    npm install commander --save

version方法

作用:定義指令程式的版本号

參數說明:

  • 版本号<必須>
  • 自定義flag<可省略>,預設為 

    -V

    --version

使用:

(1)隻傳入版本資訊

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0')

  5. .parse(process.argv);

  6. 複制代碼

  • 執行

    node index.js -V

     或者 

    node index.js --version

    得到版本号。

(2)自定義flag

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0', '-v, --version')

  5. .parse(process.argv);

  6. 複制代碼

  • 當自定義flag時,

    --version

    不能被省略
  • 執行

    node index.js -v

    或者 

    node index.js --version

    得到版本号。

option方法

作用:定義指令的選項

參數說明:

  • 自定義flag<必須>
    • 一長一短的flag,中間可以逗号、豎線或空格隔開
    • flag後面可以跟參數,

      <>

      定義必需參數,

      []

      定義可選參數
  • 選項的描述<可省略>:在使用

    -h

    或者

    --help

    時會顯示
  • 選項的預設值<可省略>

使用

(1)定義多個選項

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0')

  5. .option('-a, --add', 'add Something')

  6. .option('-u, --update', 'update Something')

  7. .option('-r, --remove', 'remove Something')

  8. .parse(process.argv);

  9. console.log('You choose: ');

  10. if (program.add) console.log(' add Something');

  11. if (program.update) console.log(' update Something');

  12. if (program.remove) console.log(' remove Something');

  13. 複制代碼

  • 短flag使用

    -

    ,長flag使用

    --

  • program.XXX

    可以得到輸入的選項
  • 執行

    node index.js -a

    或者

    node index.js --add

    會列印You choose: add Something

(2)多單詞形式

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0')

  5. .option('--add-file', 'add a file')

  6. .parse(process.argv);

  7. if (program.addFile) console.log('add a file')

  8. 複制代碼

  • 當選項為多單詞形式時,使用駝峰形式得到輸入項
  • 執行

    node index.js --add-file

    會列印add a file

(3)以

--no

形式開頭的選項,代表後面緊跟單詞的相反面

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0')

  5. .option('--no-add', 'not add a file')

  6. .parse(process.argv);

  7. if (program.add) console.log('add a file')

  8. else console.log('not add a file')

  9. 複制代碼

  • 執行

    node index.js --no-add

    會列印not add a file

(4)選項後面使用<>或[]

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0')

  5. .option('-a, --add <fileName>', 'add a file')

  6. .parse(process.argv);

  7. console.log('add a file named: ' + program.add)

  8. 複制代碼

  • 執行

    node index.js -a demo.js

    會列印add a file named: demo.js

command方法

作用:自定義指令

參數說明:

  • 自定義指令名稱
    • 名稱<必須>
    • 指令參數<可選>:
      • <>

        []

        定義參數
      • 指令的最後一個參數可以是可變的,需要在數組後面加入 ... 标志;在指令後面傳入的參數會
  • 指令描述<可省略>
  • 配置選項<可省略>:可配置noHelp、isDefault等

使用

  1. const program = require('commander');

  2. program

  3. .version('1.0.0')

  4. .command('my-cli <path>')

  5. .option('-a, --add <fileName>', 'add a file')

  6. .option('-u, --update <fileName>', 'update a file')

  7. .option('-r, --remove <fileName>', 'remove a file')

  8. .action(function(path, cmd) {

  9. console.log(path)

  10. console.log(cmd.add)

  11. })

  12. program.parse(process.argv);

  13. 複制代碼

  • 使用

    action

    後會開啟輸入的選項校驗,若輸入了未定義的選項,則抛出錯誤
  • 執行

    node index.js my-cli C -a demo.js

    會列印C demo.js

description方法

作用:指令的描述性語句

參數說明

  • 指令的描述

使用

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0')

  5. .description('It is my cli')

  6. .parse(process.argv);

  7. 複制代碼

action方法

作用:定義指令的回調函數

參數說明:

  • 回調函數

parse方法

作用:用于解析process.argv,設定options以及觸發commands

參數說明:

  • process.argv

轉自commander.js基本用法_weixin_33905756的部落格-CSDN部落格 

繼續閱讀