gpt4 book ai didi

node.js - 为什么调用 child_process 命令可以与 exec 一起使用,但不能与 Spawn 一起使用?

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:31 27 4
gpt4 key购买 nike

为什么这会起作用:

var exec = require("child_process").exec;
var command = exec("grunt");

但这会引发错误:

var spawn = require("child_process").spawn;
var command = spawn("grunt");

它抛出的错误是错误:spawn ENOENT

起初我以为这可能与env有关,但在execspawn中是完全相同的。我认为它一定与 Grunt 有关,因为尝试 git 在两者中都有效。

最佳答案

检查 Node docs对于 spawn 我发现:

Note that if spawn receives an empty options object, it will result in spawning the process with an empty environment rather than using process.env. This due to backwards compatibility issues with a deprecated API.

exec 中env 的默认选项是null,但对于spawn 来说它是process.env。那么如果两者都获得相同的 env 是不明确的吗?您可以通过为两者明确提供相同的 env 来检查这一点吗?

关于node.js - 为什么调用 child_process 命令可以与 exec 一起使用,但不能与 Spawn 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16586600/

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