代码之家  ›  专栏  ›  技术社区  ›  Hubris

从node.js更改终端的环境变量

  •  0
  • Hubris  · 技术社区  · 8 年前

    我正在开发一个简单的node.js cli,它为aws提供(mf)身份验证功能。这需要调用aws cli并更新当前终端中的环境变量(以便允许直接调用aws cli或aws cli的其他使用者调用它)。

    是否有任何方法可以更新环境变量,使其可供调用终端使用? 也不是 process.env['KEY'] = 'VALUE' 也不是 require('child_process').exec('export KEY=VALUE', ...) 工作,因为它们似乎与当前进程或子进程隔离,而不是执行终端。

    非常感谢仍然允许通过node.js cli进行简单调用的解决方案或替代方案!我已经有了 bash 这样做的脚本,但希望允许通过节点调用,以便更容易安装,并提供与其他功能一致的接口。

    操作系统:目前是Linux,以后也可能是Windows。 节点版本:10+

    1 回复  |  直到 8 年前
        1
  •  1
  •   asatsi    8 年前

    如果我正确地理解了您的问题,那么您正试图将环境变量从子进程传递回父进程。这是不可能的。但是,尝试将环境变量作为字符串输出输出并使用它在父进程中为环境提供源代码可能是值得的。