NodeJS为exec设置环境变量

时间:2011-10-19 16:36:49

标签: node.js

我想通过child_process.exec运行程序时设置环境变量。这可能吗?

我尝试像这样设置env

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

但结果消息说FOO不存在。

2 个答案:

答案 0 :(得分:53)

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

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

答案 1 :(得分:3)

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

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