为什么ArgumentParser返回错误:无法识别的参数?

时间:2018-12-27 11:05:44

标签: javascript parsing

我正在将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官方指南,但没有发现任何帮助。我想念的是什么?

1 个答案:

答案 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