我正在将ArgumentParser用于js,我需要将字符串作为参数之一发送,但是解析器返回此错误:无法识别的参数: -filePath
const parser = new ArgumentParser({
debug: true,
version: "0.0.1",
addHelp: true,
description: "Argparse example",
});
parser.addArgument("-filePath", {
type: String,
defaultValue: "try",
help: "send path to file",
});
function main() {
try {
const args = parser.parseArgs();
console.log("args: ", args);
} catch (e) {
console.log(e);
}
console.log("DONE");
}
并发送如下的args:
"args": ["-filePath = '../ts.xslx'"]
什么是正确的方法?我查看了github官方指南,但没有发现任何帮助。我想念的是什么?
答案 0 :(得分:0)
您使用的模块足够“老式”,只可以用双破折号做长选项。
const { ArgumentParser } = require("argparse");
const parser = new ArgumentParser({
debug: true,
version: "0.0.1",
addHelp: true,
description: "Argparse example",
});
parser.addArgument(["-f", "--filePath"], {
type: String,
defaultValue: "try",
help: "send path to file",
});
console.log(parser.parseArgs());
这同时适用于-f
和--filePath
。
$ node test.js --filePath foo.js
args: Namespace { filePath: 'foo.js' }
DONE
$ node test.js -f foo.js
args: Namespace { filePath: 'foo.js' }
DONE