跳到主要内容

2 篇博文 含有标签「env」

查看所有标签

在 linux 中向 exec 传递 env

· 阅读需 1 分钟
1adybug
子虚伊人

在 linux 中使用 exec 执行环境命令并传递 env 参数时时,发现很多命令都丢失了:

import { exec } from "child_process"

// 正常
exec("node -v")

// 报错,提示找不到 node 命令
exec("node -v", {
env: {
NODE_ENV: "production",
NAME: "Tom",
},
})

但是在 windows 中测试,发现正常。求助万能的 ChatGPT ,得知,在 linux 中,如果传递了 env 参数,所有的环境变量都会被覆盖,所以正确的做法是:

exec("node -v", {
env: {
...process.env,
NODE_ENV: "production",
NAME: "Tom",
},
})

正常,搞定。