我正在尝试从我的node.js应用程序中设置一个全局环境变量。
目标是:
以下是我所做的:
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上正确的命令是导出GLOBALVARNAME=value
。对于Windows,正确的命令应该是设置GLOBALVARNAME=value
-不是吗?
所以主要问题是:手动工作导出GLOBALVARNAME=fobar
出了什么问题?
试试这个:
https://www.npmjs.com/package/shelljs
我认为子进程不可能改变父进程的环境。所以我真的不认为可以使用child_process
。
示例代码:
var shell = require('shelljs');
shell.exec('export ENV_VARIABLE=ABRACADABRA');
export
不是一个独立的命令,而是一个shell内置命令,用于为当前shell进程及其子进程设置环境变量,并在设置后分叉。
不能为不是当前进程后代的进程设置环境变量。而且在Linux下,没有系统环境变量这种东西。
在Linux下,您的变量应该在生成应用程序的init脚本中设置,或者在systemd单元中设置。如果希望它在交互式用户shells中可用,应该在< code>/etc/profile或< code>/etc/profile.d中设置它
.
正如其他答案所指出的那样,炮轰和改变环境变量基本上是一个NO-OP。您要么要更改当前进程及其子进程的环境,要么要为新进程更改环境。编辑 /etc/profile
将对任何新进程进行更改,如@Hmlth所说。
如果您想更改当前流程的环境,这很简单:
process.env.YOUR_VAR = 'your_value';
问题内容: 使用JetBrains的WebStorm官方Node插件(以及它们的其他IDE)运行Node.js应用程序时,是否可以设置环境变量? 问题答案: 不,从WebStorm不可能,应该在系统中定义环境变量。 更新:在新版本中,可以在“运行/调试”配置中设置环境变量。
我需要在我所有的idea运行配置中使用一个环境变量。我目前使用run- 我试图设置env变量在我的linux系统使用在各种会话配置文件:,,,但是intellij在运行过程中似乎忽略了这些变量,即使当我从intellij内置终端启动时,它显示了正确的输出。 我也尝试使用intellij. env文件插件,然后设置在文件在项目根。也没起作用。
问题内容: 我在这里问: node.js是否需要继承? 有人告诉我可以通过省略var将变量设置为全局范围。 这对我不起作用。 即: 不能使_在必需文件上可用。我可以设置express ,但可以在其他地方使用。 有人可以确认这应该起作用吗?谢谢。 问题答案: 您可以这样使用:
本文向大家介绍Lua中全局变量与非全局环境介绍,包括了Lua中全局变量与非全局环境介绍的使用技巧和注意事项,需要的朋友参考一下 今天来聊两个话题——全局变量和非全局环境。 正如大家目前心里所感受到的,全局变量的内容很简单,而非全局环境的内容就稍微要锻炼一下脑细胞了。 1.全局变量的原形 在Lua中,要声明全局变量很简单,那就是定义变量的时候,前面不要加上local。 这个神秘的全局变量,其实本质上
我使用的是swing,有一个函数(CreateAndShowGUI())可以监听上、左、右键的按下 现在,当我运行程序并按下任意键(向上、向左、向右、向下)时,我可以看到按下的键变量被设置为True。但当我试图在main中访问相同的内容时,按下的这个键的值为false。谁能帮我找出我错的地方吗?
问题内容: 有没有一种方法可以在Linux中使用C设置环境变量? 我尝试了和,但是它们似乎并没有为我工作。 问题答案: 我将在这里做出一个疯狂的猜测,但是这些功能似乎不起作用的正常原因不是因为它们不起作用,而是因为用户并不真正了解环境变量的工作原理。例如,如果我有此程序: 然后我从外壳程序运行它,它不会修改外壳程序的环境- 子进程无法做到这一点。这就是为什么内置可修改环境的shell命令的原因,以