我正在使用yargs来验证数据加载帮助程序库的 cli 参数。
我希望能够在允许脚本运行之前检查文件是否存在,我使用fs.accessSync(filename, fs.R_OK);
. 但是,如果该文件不存在,则消息仅将 .check() 函数显示为错误,而我想拦截并声明该文件不存在(具有读取权限)。
那么如何在错误返回时发送由 .check() 呈现的错误?
这是我的 yargs 的要点:
var path = {
name: 'filepath',
options: {
alias: 'f',
describe: 'provide json array file',
demand: true,
},
};
function fileExists(filename) {
try {
fs.accessSync(filename, fs.R_OK);
return true;
} catch (e) {
return false;
}
}
var argv = require('yargs')
.usage('$0 [args]')
.option(path.name, path.options)
.check(function (argv) {
return fileExists(argv.f);
})
.strict()
.help('help')
.argv;
如果不是可读文件,则返回错误:
Argument check failed: function (argv) {
return fileExists(argv.f);
}
我希望能够指定以下内容:
Argument check failed: filepath is not a readable file