2

我将 yargs 用于复杂的命令行(通过 commandDir 使用子命令)。每次给定命令失败时,我想使用 .fail(fn) 发送电子邮件。.fail(fn) 被正确触发,但我希望能够访问赋予命令的参数。.fail(fn) 只允许我访问 msg、err、yargs。

require('yargs')
.commandDir('commands', {recurse: false})
.option('verbose', {
    alias: 'v',
    type: 'boolean',
    description: 'Run with verbose logging',
    default: false
})
.option('senderr', {
    alias: 'se',
    type: 'boolean',
    description: 'Send error(s) via email',
    default: true
})
.demandCommand()
.help()
.fail(function (msg, err, yargs) {
    console.log(err);
    process.exit(1);
})
.locale('fr')
.argv

是否可以访问失败函数中的 argv.senderr 值?谢谢 !

4

2 回答 2

0

我遇到了同样的问题,似乎没有当前的解决方案,但是我最近发布了一个 github 问题:https ://github.com/yargs/yargs/issues/2133

于 2022-02-09T23:15:28.190 回答
-1
const argv = require('yargs')
.commandDir('commands', {recurse: false})
.option('verbose', {
    alias: 'v',
    type: 'boolean',
    description: 'Run with verbose logging',
    default: false
})
.option('senderr', {
    alias: 'se',
    type: 'boolean',
    description: 'Send error(s) via email',
    default: true
})
.demandCommand()
.help()
.fail(function (msg, err, yargs) {
    if (argv.verbose) console.log(err);
    process.exit(1);
})
.locale('fr')
.argv
于 2021-02-24T21:09:25.107 回答