Piral CLI 扩展参数格式
Piral CLI extension arguments format
我正在研究开发一个 piral-cli 扩展,并且有几个关于 CliPluginApi
界面的问题:
module.exports = function (cliApi) {
cliApi.withCommand({
name: 'dependencies-pilet',
alias: ['deps-pilet'],
description: 'Lists the dependencies of the current pilet.',
arguments: [],
flags(argv) {
return argv
.boolean('only-shared')
.describe('only-shared', 'Only outputs the declared shared dependencies.')
.default('only-shared', false)
.string('base')
.default('base', process.cwd())
.describe('base', 'Sets the base directory. By default the current directory is used.');
},
run(args) {
// your code here, where args.onlyShared refers to our custom argument
},
});
};
ToolCommand
中的arguments
和flags
有什么区别?参数是否只需要位置参数?需要再次列出位置信息吗?
关于这个问题的最后一个问题 - 我想获得像数组一样的位置列表。这是什么语法?我试过 arguments: ['list[]'],
但没用。
是的,参数是位置性的,但是,它们也可能是可选的。
有关此区域的任何信息,请查看 documentation of Yargs。这可能会有所帮助。
您仍然可以使用带有 argv 的标志来描述这些位置,例如:
return argv
.positional('source', {
type: 'string',
describe: 'Sets the source root directory or index.html file for collecting all the information.',
default: apps.debugPiralDefaults.entry,
})
// ...
关于你的数组问题:要允许多个,你可以使用 ..
后缀作为你的位置名称。
在您的情况下,这意味着:arguments: ['[list..]'],
。
在 Yargs 中 []
不是数组的意思,而是可选的。这与 <>
相反,后者表示必需。对于位置描述仍然使用,例如,string
-> 你在这里只描述了一个元素,但是因为你指定了 ..
传输的数据类型将始终是 Array<T>
,其中 T
是你给 Yargs 的单一类型。
希望对您有所帮助!
我正在研究开发一个 piral-cli 扩展,并且有几个关于 CliPluginApi
界面的问题:
module.exports = function (cliApi) {
cliApi.withCommand({
name: 'dependencies-pilet',
alias: ['deps-pilet'],
description: 'Lists the dependencies of the current pilet.',
arguments: [],
flags(argv) {
return argv
.boolean('only-shared')
.describe('only-shared', 'Only outputs the declared shared dependencies.')
.default('only-shared', false)
.string('base')
.default('base', process.cwd())
.describe('base', 'Sets the base directory. By default the current directory is used.');
},
run(args) {
// your code here, where args.onlyShared refers to our custom argument
},
});
};
ToolCommand
中的arguments
和flags
有什么区别?参数是否只需要位置参数?需要再次列出位置信息吗?
关于这个问题的最后一个问题 - 我想获得像数组一样的位置列表。这是什么语法?我试过 arguments: ['list[]'],
但没用。
是的,参数是位置性的,但是,它们也可能是可选的。
有关此区域的任何信息,请查看 documentation of Yargs。这可能会有所帮助。
您仍然可以使用带有 argv 的标志来描述这些位置,例如:
return argv
.positional('source', {
type: 'string',
describe: 'Sets the source root directory or index.html file for collecting all the information.',
default: apps.debugPiralDefaults.entry,
})
// ...
关于你的数组问题:要允许多个,你可以使用 ..
后缀作为你的位置名称。
在您的情况下,这意味着:arguments: ['[list..]'],
。
在 Yargs 中 []
不是数组的意思,而是可选的。这与 <>
相反,后者表示必需。对于位置描述仍然使用,例如,string
-> 你在这里只描述了一个元素,但是因为你指定了 ..
传输的数据类型将始终是 Array<T>
,其中 T
是你给 Yargs 的单一类型。
希望对您有所帮助!