主题
npm commander 命令行工具
javascript
const { Command } = require("commander");
const program = new Command();
program
.name("自定义命令行")
.usage("[gg oo] cc")
.version("0.0.0.1")
.description("<<<<<<<<<<")
.option("-a")
.option("--b")
.option("-c --color")
.option("-d --des", "aaaaa")
.option("-n --name <app-name>", "aaappp nnn")
// .requiredOption("-m <m-name>", "abc") //必填
.option("-e <e...>", "eee")
.option("-f [f...]", "")
.option("-g1 <g...>", "", (...props) => console.log("参数预处理1:", props))
.option("-g2 <gg>", "", (...props) => console.log("参数预处理2:", props));
// program
// .command("create <app-name> [version]")
// .usage("?FA?FA?SE?F")
// .description("创建一个项目")
// .action((AppName, version) => {
// console.log("action create <app-name>:", AppName, version)
// })
program.parse(process.argv);
console.log("1==>", program.opts());- name( string )
命令行的标题
- usage( string )
紧跟在标题后方的 使用方法 的提示
- version( string )
输入的版本号
- description( string )
如果有,会在标题隔行显示介绍文字
- option( key, des, fn | other )
命令行选项的每一项
key单条横线为短选项,选中后对应的 key 变为 true-key两条横线为长选项,选中后对应的 key 变为 truek1 --k2有长有短最终结果的 key 会被定为成长选项k1 --k2 [<arg...> | [arg...] ]方括号中为可选参数列表,如果有则是最终 key 的值,没用参数但是执行了则默认为 truek1 --k2 [<arg> | [arg] ]不加...表示必须有参数- des 为该选项的描述,在使用帮助是能看到
- fn | other 该选项如果非函数则是默认值,如果是函数则是预处理
- requiredption
于 option 一样都是选项,这个表示必须选
- command
参数和 programe 一模一样,可以理解成分组。如果使用了分组则会另外侧的 programe 失效
- ... 如果上述参数
- name( title + arguments ) 和上边不一样在于,这里除了声明标题 还要声明用法,格式同 usage
- action( ...arg ) 采用 command 命令的选项最终会进到这里,参数为在 name 中声明的参数