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

1508
Robert Oschler

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

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

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

0

1 ответ на вопрос

0
Robert Oschler

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

$>sudo NPM -g install process --save 
странно ... process.env является частью ядра Node.js, обычно не требуется устанавливать дополнительные модули lena 7 лет назад 0
Просто примечание: WebStorm правильно загружает переменные окружения из .bashrc при запуске из терминала; однако, несоответствие переменных среды происходит, если IDE запускается из меню «Рабочий стол» или «Система». Проблема в том, что IDE видит переменные среды, настроенные в ~ / .profile (оболочка входа в систему), но не в интерактивных файлах конфигурации оболочки (например, ~ / .bashrc). И, что еще хуже, некоторые инструменты (например, nvm) изменяют .bashrc только на этапе установки. Так что, действительно, вы можете столкнуться с проблемами при запуске приложения Node из WebStorm, если оно было запущено с рабочего стола и т. Д. lena 7 лет назад 3
@lena - ценю совет. Не уверен, что сказать, но я трижды проверил свои результаты, включая перезапуски системы. Ничто не работало ни с помощью .bashrc, / etc / environment, ни путем добавления переменных среды в конфигурацию запуска WebStorm, пока я не установил пакет "process" с помощью NPM. Robert Oschler 7 лет назад 0
@lena: спасибо за помощь. У меня это работало без необходимости установки модуля процесса. Sam 5 лет назад 1

Похожие вопросы