WebStorm/IntelliJ не видит переменные среды Linux, даже если они работают под одним и тем же пользователем?

В моем файле пользователя 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
$>

Если я выполняю команду whoami из внешнего окна терминала или из окна терминала, запущенного WebStorm, я получаю точно такое же имя пользователя (мое имя пользователя для учетной записи пользователя, которую я запускаю, когда на моем локальном компьютере с Linux), так что это не проблема с разными учетными записями пользователей. Я уже пробовал полностью перезапустить мою систему, чтобы убедиться, что это не временная проблема. Проблема сохраняется.

Работает ли WebStorm/IntelliJ каким-то странным образом, так как он не может получить доступ к переменным среды, установленным для локальной учетной записи пользователя? Если IDE работала в качестве фоновой службы или какого-либо другого экзотического исполняемого контекста, я мог бы это понять, но, как я уже сказал, я запускаю его как обычное приложение под своей учетной записью пользователя, а команда whoami показывает то же имя пользователя, что и в окне внешнего терминала. делает.

Это реальная проблема, потому что когда я пытаюсь использовать переменную Node.JS process.env и получаю значение process.env.LINUX_DEV, эта переменная, естественно, не определена из-за этой проблемы. Как я могу заставить это работать должным образом?

ПРИМЕЧАНИЕ. Я попытался поместить точно такую ​​же настройку переменной среды в мой файл /etc/environment. Мне пришлось сделать полный перезапуск, чтобы получить окно терминала WebStorm, чтобы увидеть изменения, но это сработало. Однако я бы предпочел, чтобы настройки были указаны в моей локальной учетной записи пользователя, поэтому, если кто-нибудь знает, почему у меня возникла такая проблема с настройкой в .bashrc, я бы хотел знать.

ОБНОВЛЕНИЕ: хотя переменная окружения, установленная в файле /etc/environment, видна из окна терминала WebStorm, она не видна через переменную Node.JS process.env, поэтому мне все еще не повезло. Я действительно поражен, что это так сложно в данный момент.

1 ответ

Я публикую этот ответ, чтобы спасти других от той же боли, через которую я только что прошел. Причина, по которой я не смог получить доступ к переменным окружения из своего приложения WebStorm/Node.JS, заключается в том, что у меня не был установлен модуль NPM "процесс". После того, как я установил этот модуль, process.env начал работать на меня. Для его установки я использовал следующую команду, запущенную из окна терминала, установленного в каталог верхнего уровня, содержащий мое приложение Node.JS:

$>sudo NPM -g install process --save
Другие вопросы по тегам