在我的 Linux 用户中.bashrc在进行基于 Linux 的开发时,我在其下运行的用户帐户的文件,我设置了一个环境变量来让我的应用程序知道它们是在开发环境中运行,而不是在生产环境中运行:
LINUX_DEV=true
export LINUX_DEV # Make LINUX_DEV an environment variable
如果我打开一个新的终端窗口并运行以下命令,我确实会看到设置:
$>printenv | grep LINUX_DEV
$>LINUX_DEV=true
一切正常。但是,当我运行 WebStorm/IntelliJ 并使用其内部功能启动终端窗口时,找不到环境变量:
$>printenv | grep LINUX_DEV
$>
如果我执行我是谁命令,无论是从外部终端窗口还是从 WebStorm 启动的终端窗口,我都会得到完全相同的用户名(我在本地 Linux 机器上运行的用户帐户的用户名),因此这不是不同用户帐户的问题。我已经尝试完全重启系统以确保这不是暂时的问题。问题仍然存在。
WebStorm/IntelliJ 是否以某种奇怪的方式运行,以至于无法访问为本地用户帐户设置的环境变量?如果 IDE 作为后台服务或其他一些奇特的可执行上下文运行,我可以理解这一点,但正如我所说,我在我的用户帐户下将其作为常规应用程序启动,并且我是谁命令显示的用户名与外部终端窗口完全相同。
这是一个真正的问题,因为当我尝试使用 Node.JS进程环境变量并获取进程.环境.LINUX_DEV,该变量是不明确的自然是由于这个问题。我怎样才能让它正常工作?
笔记: 我做过尝试将完全相同的环境变量设置放入我的/etc/环境文件。我必须完全重启才能让 WebStorm 的终端窗口看到更改,但它做过有效。不过,我更愿意在我的本地用户帐户中进行设置,所以如果有人知道为什么我在设置时遇到这个问题.bashrc, 我想知道。
更新:尽管在/etc/环境文件是从 WebStorm 终端窗口可见,它是不是通过 Node.JS 可见进程环境变量,所以我还是运气不好。我真的很惊讶,这件事竟然到了这个地步还这么难。
答案1
我发布这个答案是为了让其他人免于遭受我刚刚经历的痛苦。我无法从 WebStorm/Node.JS 应用程序访问环境变量的原因是我没有安装 NPM“进程”模块。安装该模块后,进程环境开始为我工作了。我使用以下命令来安装它,从终端窗口启动,并设置为包含我的 Node.JS 应用程序的顶级目录:
$>sudo NPM -g install process --save