В моем файле пользователя 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 показывает то же имя пользователя, что и в окне внешнего терминала. делает.

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

Примечание: Я попытался поставить точный переменный параметр же среды в моей / и т.д. / файл среды. Я должен был сделать полный рестарт , чтобы получить окно терминала WebStorm, чтобы увидеть изменения , но он сделал работу. Тем не менее, я бы предпочел, чтобы настройки были указаны в моей локальной учетной записи пользователя, поэтому, если кто-нибудь знает, почему у меня возникла такая проблема с настройкой в .bashrc, я бы хотел знать.

UPDATE: Несмотря на то, что переменная среды устанавливаются в / и т.д. / файл окружающей среды виден из окна WebStorm терминала, он не виден через узел.Переменная JS process.env, так что мне все еще не повезло. Я действительно поражен, что это так сложно в данный момент.

1 ответ1

0

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

$>sudo NPM -g install process --save

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .