NodeJS为exec设置环境变量

q5iwbnjs  于 2023-02-08  发布在  Node.js
关注(0)|答案(2)|浏览(431)

我想在通过child_process.exec运行程序时设置一个环境变量,可以吗?
我试着这样设置env

exec('FOO', {'FOO': 'ah'}, function(error, stdout, stderr) {console.log(stdout, stderr, error);});

但是结果消息说FOO不存在。

z0qdvdin

z0qdvdin1#

您必须传递一个包含键env的选项对象,该键的值本身就是键值对的对象。

exec('echo $FOO', {env: {'FOO': 'ah'}}, function (error, stdout, stderr) 
{
    console.log(stdout, stderr, error);
});
q0qdq0h2

q0qdq0h22#

根据@DanielSmedegaardBuus的回答,如果您想保留它们,您必须添加您的env变量到现有的变量中:

const { exec } = require("child_process");

exec(
  "echo $FOO", 
  { env: { ...process.env, FOO: "ah" } }, 
  function (error, stdout, stderr) {
    console.log(stdout, stderr, error);
  }
);

相关问题