1、簡介
Commander.js:node.js 命令行接口的完整解決方案
https://github.com/tj/commander.js/blob/HEAD/Readme_zh-CN.md#commanderjs
2、常用示例
const program = require('commander'); program.version('1.0.1', '-V, --version', 'output the current version') // 定義參數 逗號前的是短名字,逗號后的是長名字,如-d, --debug
// -d是布爾類型
.option('-d, --debug', 'output extra debugging') // -s是布爾類型
.option('-s, --small', 'small pizza size') // 多詞選項如"--template-engine"會被轉為駝峰法program.templateEngine。
// -p是值類型 若命令行有-p的話 必須在-p后跟參數
// 說明:--pizza-type=test 其中=可以省略,-p tets 短名字后沒有=
// <type> 表示必填,不是布爾類型
// [type] 可以填 也可以不填, --pizza-type 后面不填表示ture
.option('-p, --pizza-type <type>', 'flavour of pizza') // 可以為選項設置一個默認值。
.option('-c, --cheese <type>', 'add the specified type of cheese', 'blue'); // program.parse(arguments)會處理參數,沒有被使用的選項會被存放在program.args數組中。
program.parse(process.argv); if (program.debug) console.log(program.opts()); // 打印的是一個對象 其中key都是長名字 // 如: // { debug: true, // small: undefined, // pizzaType: undefined, // cheese: 'blue' }
if (program.small) console.log('- small pizza size'); if (program.pizzaType) console.log(`- ${program.pizzaType}`); // --help 是根據上述信息自動生成的。