gpt4 book ai didi

node.js - 在 Node.js 之外设置全局环境变量

转载 作者:搜寻专家 更新时间:2023-10-31 22:30:54 25 4
gpt4 key购买 nike

我正在尝试从我的 node.js 应用程序中设置一个全局环境变量。

目标是:

  1. 重启APP时,环境变量仍要设置
  2. 打开一个新的shell,应该可以使用
  3. 如果可能:重新启动时,与 1 相同。
  4. 它应该可以在 Linux、Mac OS X 上运行(并且需要一个用于 windows 的备用 SET 命令)

这是我做的:

var setEnv = require('child_process')
.spawn('export GLOBALVARNAME='+my.value,{
stdio: 'inherit',
env: process.env
});

但这会导致

{ [Error: spawn export GLOBALVARNAME=foobar ENOENT]
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'spawn export GLOBALVARNAME=foobar',
path: 'export GLOBALVARNAME=foobar',
spawnargs: [] }

我没有在 Windows 上对此进行测试,但在 Mac OS X(和 Linux)上,bash 上的正确命令是 export GLOBALVARNAME=value。对于 Windows,正确的命令应该是 SET GLOBALVARNAME=value - 不是吗?

所以主要问题是:手动操作 export GLOBALVARNAME=foobar 出了什么问题?

最佳答案

正如其他答案所指出的,炮击和更改环境变量基本上是一个 NO-OP .您想要更改当前流程及其子流程的环境,或者您想要为新流程更改环境。如@Hmlth 所说,编辑 /etc/profile 将对任何新进程进行更改。

如果您想更改当前流程的环境,这很简单:

process.env.YOUR_VAR = 'your_value';

关于node.js - 在 Node.js 之外设置全局环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32523101/

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