命令行参数
以下说明的是命令行参数类型
必填
位置示例
1 2 3 4 5 6 7 8 9
| new Command({ 'name': 'app', 'des': 'simple app test' }).addArgs({ 'name': 'name', 'location': true, 'format': 'string' })
|
1 2 3 4 5 6 7 8 9 10
| app --help
Usage: app [option] [name]
Arguments: [name] --env env valuse in []
Option: ...
|
选项
1 2 3 4 5 6 7 8 9
| new Command({ 'name': 'app', 'des': 'simple app test' }).addOption({ 'name': 'name', 'short': 'n', 'long': 'name', 'format': 'string' })
|
示例:
1 2 3 4 5 6
| app --help
Option: -n name Print Name -v version Print version -h help Print help
|
Flag
1 2 3 4 5 6 7 8 9 10 11
| new Command({ 'name': 'app', 'des': 'simple app test' }).addFlag({ 'name': 'verbose', 'short': 'v', 'long': 'verbose', 'count': false })
|
1 2 3 4 5 6
| app --help
Options: -v, --verbose -h, --help Print help -V, --version Print version
|
当 app --verbose
时,意味着 verbose===true
子命令
1 2 3 4 5 6 7 8 9
| app --help
Commands: add Add name to My app count Counter
Options: -h, --help Print help -V, --version Print version
|
Next:
命令行值参数类型
命令行说明的是命令行值参数类型
选项枚举值
…
-vValue
-v=value
-v value
–value=value
–value val
-a -c -v
场景:app build –env [args]
其中 args 只可为 production
、develop
、sandbox
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| new Command({ 'name': 'app', 'des': 'simple app test' }).addSubCommand( new Command({ 'name': 'build', 'des': 'build fx' }).addArgs({ 'name': 'env', 'des': 'env', 'long': 'env', 'format': 'production' | 'develop' | 'sandbox' }) )
|
默认值
场景:app invoke –port 2022
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| new Command({ 'name': 'app', 'des': 'simple app test' }).addSubCommand( new Command({ 'name': 'invoke', 'des': 'Call API Tool' }).addArgs({ 'name': 'port', 'default': 22, 'des': 'API port', 'short': 'p', 'long': 'port', 'format': 'uint' } ));
|
其中 可以写为 app invoke –path /v2/xxxx
注意,port 可省略但不是可选,可选值解析的 args 为 undefined
app invoke --help
中
1 2 3 4 5 6
| app invoke --help
Arguments: -p --port API PORT Default Value: 22 ....
|
多组参数
场景:当一个参数允许多组值时
譬如,生成配置的参数同时生成多个,那么支持如下传参数
add 为 string[];
App a.ts b.ts c.ts. x.js
app out.js a.ts b.ts …
cmd arg1 arg2[…]
cmd arg1[…] arg2
cmd arg1[…] arg2[…] arg3[…]
reolink config add ……
Parser.parse(args
reolink config add \
-c xxx.yml \
rpc-client -n sss \
rpc-server
app config --add uuid-generator --add orm-generator -c packages/server/config.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| new Command({ 'name': 'app', 'des': 'simple app test' }).addSubCommand( new Command({ 'name': 'config', 'des': 'Config Tool' }).addArgs({ 'name': 'add', 'des': 'add config', 'short': 'p', 'long': 'port', 'format': 'uuid-generator' | 'orm-generator', 'mulit': true, 'splitFunc': (args: string) => { return args.split(' '); } } ));
|