node child_process 模块 报错error: spawn EINVAL

2,592 阅读1分钟

nodespawn官方地址——[Child process | Node.js v23.2.0 Documentation]

报错经尝试出node 18 20 两个版本均会出现,node 16可以正常使用。

AI给出了下面回答:
EINVAL 是一个在编程和操作系统中常见的错误代码,它代表 "Invalid Argument",即“无效参数”的错误。当你在使用如 spawn 这样的函数(特别是在 Node.js 的 child_process 模块中)时,如果遇到了 EINVAL 错误,这通常意味着你传递给函数的某个参数不符合期望的格式或值。

(nodejs.org/docs/latest…) image.png

在上图官方给的参数中可以看到选中的shell参数默认为false,而当时我正在window下vscode提供的shell窗口中运行。

修改

修改参数shell
其他参数也可能导致同样的报错,但这个可能在windows开发常见

spawn("xxx.cmd",[],{
    env:process.env,
    shell:true, //将此参数改为true
    // windowsVerbatimArguments:false,
})