WebStorm / IntelliJ sehen keine Linux-Umgebungsvariablen, obwohl sie unter demselben Benutzer laufen?

958
Robert Oschler

In meiner Linux- basierten .bashrc- Datei für das Benutzerkonto, unter dem ich bei der Linux-basierten Entwicklung ausgeführt werde, habe ich eine Umgebungsvariable festgelegt, damit meine Apps wissen, dass sie in der Entwicklungsumgebung ausgeführt werden, anstatt unter der Produktionsumgebung zu laufen:

LINUX_DEV=true export LINUX_DEV # Make LINUX_DEV an environment variable 

Wenn ich ein neues Terminalfenster öffne und Folgendes ausführen, sehe ich die Einstellung:

$>printenv | grep LINUX_DEV $>LINUX_DEV=true 

Alles ist gut. Wenn ich jedoch WebStorm / IntelliJ ausführen und dessen interne Einrichtung zum Starten eines Terminalfensters verwende, kann die Umgebungsvariable nicht gefunden werden:

$>printenv | grep LINUX_DEV $> 

Wenn ich den whoami- Befehl entweder von einem externen Terminal-Fenster oder von dem von WebStorm gestarteten Terminal-Fenster ausführe, erhalte ich genau denselben Benutzernamen (meinen Benutzernamen für das Benutzerkonto, das ich in meiner lokalen Linux-Box ausgeführt habe) Problem mit verschiedenen Benutzerkonten. Ich habe bereits einen vollständigen Neustart meines Systems versucht, um sicherzustellen, dass es sich nicht um ein vorübergehendes Problem handelt. Das Problem besteht weiterhin.

Läuft WebStorm / IntelliJ auf eine seltsame Weise, dass es nicht auf die Umgebungsvariablen zugreifen kann, die für das lokale Benutzerkonto festgelegt sind? Wenn die IDE als Hintergrunddienst oder in einem anderen exotischen ausführbaren Kontext ausgeführt wurde, konnte ich dies verstehen, aber wie gesagt, ich starte sie als reguläre App unter meinem Benutzerkonto und der whoami- Befehl zeigt genau denselben Benutzernamen wie ein externes Terminalfenster tut.

Das ist ein echtes Problem, weil, wenn ich versuche, die Node.JS zu verwenden process.env Variable und erhalte den Wert von process.env.LINUX_DEV, dass Variable ist nicht definiert aufgrund dieses Problem natürlich. Wie kann ich das richtig zum Laufen bringen?

HINWEIS : Ich habe versucht, genau dieselbe Umgebungsvariableneinstellung in meine / etc / environment- Datei zu übernehmen. Ich hatte einen vollständigen Neustart zu tun WebStorm Terminal - Fenster zu sehen, um die Änderungen zu bekommen, aber es tat Arbeit. Ich würde es jedoch vorziehen, die Einstellung in meinem lokalen Benutzerkonto zu haben. Wenn also jemand weiß, warum ich dieses Problem mit der Einstellung in .bashrc habe, würde ich das gerne wissen.

UPDATE: Auch wenn die Umgebungsvariable in der eingestellten / etc / environment Datei ist von einem WebStorm Terminal - Fenster sichtbar ist, ist es nicht über die Node.JS sichtbar process.env Variable so dass ich immer noch kein Glück bin. Ich bin wirklich erstaunt, dass dies an diesem Punkt so schwierig ist.

0

1 Antwort auf die Frage

0
Robert Oschler

Ich poste diese Antwort, um andere vor dem gleichen Schmerz zu retten, den ich gerade erlebt habe. Der Grund, warum ich von meiner WebStorm / Node.JS-App aus nicht auf die Umgebungsvariablen zugreifen konnte, ist, dass das NPM-Modul "process" nicht installiert wurde. Nachdem ich dieses Modul installiert hatte, arbeitete process.env für mich. Ich habe den folgenden Befehl verwendet, um ihn zu installieren. Er wurde von einem Terminalfenster aus in das Verzeichnis der obersten Ebene gestartet, das meine Node.JS-App enthält:

$>sudo NPM -g install process --save 
seltsam ... process.env ist Teil des Node.js-Kerns, normalerweise müssen keine zusätzlichen Module installiert werden lena vor 7 Jahren 0
Nur ein Hinweis: WebStorm lädt Umgebungsvariablen korrekt aus .bashrc, wenn vom Terminal aus gestartet wird. Umgebungsvariablen stimmen jedoch nicht überein, wenn IDE über das Desktop- oder System-Menü gestartet wird. Das Problem ist, dass IDE Umgebungsvariablen sieht, die in ~ / .profile (Login-Shell) konfiguriert sind, nicht jedoch in interaktiven Shell-Konfigurationsdateien (wie ~ / .bashrc). Darüber hinaus ändern einige Tools (zum Beispiel nvm) .bashrc nur während der Installationsphase. In der Tat können Probleme auftreten, wenn Sie Ihre Node-Anwendung über WebStorm ausführen, wenn letztere vom Desktop usw. gestartet wurde. lena vor 7 Jahren 3
@lena - schätze den Tipp. Ich weiß nicht, was ich sagen soll, aber ich habe meine Ergebnisse dreifach überprüft, einschließlich Neustarts des Systems. Über .bashrc, / etc / environment oder das Hinzufügen von Umgebungsvariablen zur WebStorm-Ausführungskonfiguration funktionierte nichts, bis ich das "process" -Paket mit NPM installiert habe. Robert Oschler vor 7 Jahren 0
@lena: danke für die hilfe. Es hat für mich funktioniert, ohne Prozessmodul installieren zu müssen. Sam vor 5 Jahren 1