gpt4 book ai didi

node.js - 处理 Node.js spawnSync 错误

转载 作者:搜寻专家 更新时间:2023-10-31 22:47:12 28 4
gpt4 key购买 nike

我正在尝试从 gulp 任务运行“npm publish”。它有效,但我想处理 npm 命令本身抛出的任何错误。

如果我执行这段代码:

var cmd = spawnSync('npm.cmd', ['publish', packageDir], { stdio: 'inherit' })

cmd.stdoutcmd.stderr 为空。如果我执行

var cmd = spawnSync('npm.cmd', ['publish', packageDir], { stdio: 'pipe' })

cmd.stdoutcmd.stderr 是缓冲区,如 <Buffer 6e 70 6d 20 45 52...

我在这里错过了什么?

最佳答案

在有关 options.stdio 的 Node 文档中说

By default, the child's stdin, stdout, and stderr are redirected to corresponding subprocess.stdin, subprocess.stdout, and subprocess.stderr.

在你的选项中使用

{ stdio: ['inherit', 'inherit', 'pipe'] }

然后检查 stderr。一个例子:

var spawn = childProcess.spawnSync('node myScript.js', { stdio: ['inherit', 'inherit', 'pipe'] })

if (spawn.stderr) {
console.log(Error(spawn.stderr))
process.exitCode = 1;
}

关于node.js - 处理 Node.js spawnSync 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40149351/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com