【发布时间】:2020-10-08 00:34:49
【问题描述】:
在人们开始喊“重复”之前,我已经检查过了
- Spawning process with arguments in node.js
- Use NodeJS spawn to call node script with arguments
- How do I pass command line arguments to a Node.js program?
其中的第一个基本上是不同用例中的相同问题,因此答案没有解决我的用例。
那么...如何使用空格分隔命名参数的命令行如下编码?
arduino-cli compile --fqbn arduino:avr:nano
它应该看起来像这样 (1) 吗?
let cp = child.process(
"/path/to/arduino-cli.exe",
[
"compile",
"--fqbn arduino:avr:nano"
]
);
还是这个(2)?
let cp = child.process(
"/path/to/arduino-cli.exe",
[
"compile",
"--fqbn",
"arduino:avr:nano"
]
);
还是这个(3)?
let cp = child.process(
"/path/to/arduino-cli.exe",
[
"compile",
"fqbn",
"arduino:avr:nano"
]
);
还是这个(4)?
let cp = child.process(
"/path/to/arduino-cli.exe",
{
_: ["compile"],
fqbn: "arduino:avr:nano"
}
);
TypeScript 不允许最后一个选项,即使我怀疑它是正确的答案,所以我提交这个问题以供更广泛的考虑。
【问题讨论】:
-
第二个对我来说很合适。参数应该是一个字符串数组,每个数组元素一个参数,所以第三个是错误的格式(这就是 TypeScript 不允许它的原因)。第一个在一个数组元素中有多个参数。
-
问题是,它是一个命名参数。而且,它们都不起作用。我现在正在重做测试,以防我搞砸了。
-
制作一个小测试应用程序,它只记录它传递的参数,然后在生成该测试应用程序时尝试不同的方法来传递参数。
-
另外,你在什么操作系统上运行这个?
-
@jfriend00 什么操作系统?在开发期间,Win10.但是,它旨在跨平台。你的问题是不祥的。告诉我坏消息。