gpt4 book ai didi

javascript - nodejs Commander.js 'alias' 未按 "--help"的预期工作

转载 作者:行者123 更新时间:2023-11-28 05:29:26 25 4
gpt4 key购买 nike

我正在为我的项目使用 Commander.js,在为命令提供别名时遇到一个奇怪的问题。我引用了这里提到的例子:Commander.JS Example

我正在寻找创建一个类似 git 的命令,所以我从 .command() 开始方法。当我克隆上面的存储库并在本地运行给定的 pm 示例时,帮助选项按预期工作。请注意,在使用部分中只有“pm”,并且命令“install”具有由“|”分隔的别名“i”符号

Usage: pm [options] [command]

Commands:

install|i [name] install one or more packages

other options ...

但是当我运行自己的测试应用程序时,我的命令别名会附加测试应用程序名称本身,并且得到如下输出:

Usage: index|r [options] [command]

Commands:

random random command

请注意,别名“r”是通过索引命令而不是“随机”命令显示的。如果我向 index.js 文件添加更多命令,最后一个别名将附加到 Usage: index|<new alias>而不是实际附加正确的命令。

我无法理解我做错了什么。有人可以帮忙吗?使用 -h 时如何获得正确的输出或--help选项?

index.js

#!/usr/bin/env node
'use strict';
var program = require('commander');
program
.version('1.0.0')
.command('random', 'random command')
.alias('r')
.parse(process.argv);

index-random.js

#!/usr/bin/env node
'use strict';
var program = require('commander');
program
.option('-r, --random <random>', 'Random command option')
.parse(process.argv);

Package.json

{
"name": "commander-test",
"version": "1.0.0",
"description": "Testing commander",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Raghuveer",
"license": "UNLICENSED",
"dependencies": {
"commander": "^2.9.0",
"graceful-readlink": "1.0.0"
}
}

重现步骤:

node index -h

如果您需要更多信息,请告诉我。

最佳答案

将子命令的别名添加到相应的子命令文件中。在您的情况下,您必须将其添加到 index-random.js 文件中,如下所示。

#!/usr/bin/env node
'use strict';
var program = require('commander');
program
.option('-r, --random <random>', 'Random command option')
.alias('r')
.parse(process.argv);

然后当你调用时; node index.js 帮助随机帮助将显示 Usage: index-random|r

但是,我也面临的问题是,如果我仅使用别名调用索引命令,则不会发生任何情况。 (例如:如果我调用 Node 索引r,则不会返回任何输出)。

如果您成功调用别名而不是完整命令,请告诉我。

更新:以下是两个命令的输出。

>node index.js help

Usage: index [options] [command]

Commands:

random random command
help [cmd] display help for [cmd]

Options:

-h, --help output usage information
-V, --version output the version number


>node index.js help random

Usage: index-random|r [options]

Options:

-h, --help output usage information
-r, --random <random> Random command option

关于javascript - nodejs Commander.js 'alias' 未按 "--help"的预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39844938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com