Gibt es eine Möglichkeit, Umgebungsvariablen in Visual Studio Code festzulegen?

Antworten:

72

Angenommen, Sie meinen für eine Debugging-Sitzung (?), Dann können Sie eine envEigenschaft in Ihre Startkonfiguration aufnehmen .

Wenn Sie die Datei .vscode / launch.json in Ihrem Arbeitsbereich öffnen oder Debug> Konfigurationen öffnen auswählen, sollten eine Reihe von Startkonfigurationen zum Debuggen Ihres Codes angezeigt werden. Sie können dann eine envEigenschaft mit einem Wörterbuch von string: string hinzufügen .

Hier ist ein Beispiel für eine ASP.NET Core-App aus ihrer Standard-Webvorlage, in der ASPNETCORE_ENVIRONMENTFolgendes festgelegt ist Development:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": ".NET Core Launch (web)",
      "type": "coreclr",
      "request": "launch",
      "preLaunchTask": "build",
      // If you have changed target frameworks, make sure to update the program path.
      "program": "${workspaceFolder}/bin/Debug/netcoreapp2.0/vscode-env.dll",
      "args": [],
      "cwd": "${workspaceFolder}",
      "stopAtEntry": false,
      "internalConsoleOptions": "openOnSessionStart",
      "launchBrowser": {
        "enabled": true,
        "args": "${auto-detect-url}",
        "windows": {
          "command": "cmd.exe",
          "args": "/C start ${auto-detect-url}"
        },
        "osx": {
          "command": "open"
        },
        "linux": {
          "command": "xdg-open"
        }
      },
      "env": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "sourceFileMap": {
        "/Views": "${workspaceFolder}/Views"
      }
    },
    {
      "name": ".NET Core Attach",
      "type": "coreclr",
      "request": "attach",
      "processId": "${command:pickProcess}"
    }
  ]
}

Stewart_R
quelle
2
Danke für deine Antwort. Ich arbeite an einer Knotenanwendung und verwende dort eine Umgebungsvariable wie process.env.VAR_NAME. Ich möchte die Variablen beim Ausführen des Projekts. Sind in diesem Fall die Konfigurations-Env-Variablen verfügbar? Es funktioniert nicht.
Shakti Kumar Das
1
Im obigen Beispiel wird eine env-Variable festgelegt, wenn ein Debugger von vscode verwendet wird (dies funktioniert für den Knoten-Debugger, wenn er auch von vscode aus gestartet wird). Vielleicht könnten Sie noch eine Frage mit einigen Details stellen, was genau nicht funktioniert? Laufen Sie von vscode? Vielleicht teilen Sie die von Ihnen verwendete launch.json? Läuft es, hat aber die env-Variable nicht gesetzt oder läuft es überhaupt nicht? Wenn Sie mich in einem Kommentar markieren möchten (verwenden Sie einfach @stewart_r im Kommentar), würde ich gerne versuchen, Ihnen zu helfen, aber ich bin sicher, wenn Sie eine ausreichend detaillierte Frage stellen, wird auch von anderen eine Menge Hilfe zur Verfügung stehen.
Stewart_R
Ich habe das Gefühl, die Frage so beantwortet zu haben, wie sie gestellt wurde. Wenn Sie immer noch Probleme haben , stellen Sie vielleicht eine neue Frage und versuchen Sie so weit wie möglich, diesem Handbuch zu folgen: stackoverflow.com/help/how-to-ask , um der Community die bestmögliche Chance zu geben, helfen zu können
Stewart_R
Vielen Dank, dass Sie Ihre Antwort @Stewart_R veröffentlicht haben. Ich denke, es sollte die akzeptierte Antwort sein und ganz oben stehen.
RAM
32

In der VSCode launch.json können Sie "env" verwenden und dort alle Ihre Umgebungsvariablen konfigurieren:

{
    "version": "0.2.0",
    "configurations": [
        {           
            "env": {
                "NODE_ENV": "development",
                "port":"1337"
            },
            ...
        }
    ]
}
Petro Franko
quelle
Was ist, wenn ich zwei Konfigurationen habe? Wie wechsle ich zwischen ihnen? Der zweite Name lautet beispielsweise "Programm 2 starten". Mein Code importiert nur eine Umgebungsvariable, aber ich möchte, dass sie je nach aktueller Konfiguration unterschiedliche Werte importiert. Ich meine, nur für einen einfachen Start bin ich NICHT in einer Debugging-Sitzung.
Sergey Zakharov
@SergeyZakharov Innerhalb der "Konfigurationen" können Sie eine neue hinzufügen (ändern Sie einfach den "Namen") und dann auf der Registerkarte "Debuggen" auswählen, welche Konfiguration Sie verwenden möchten.
Petro Franko
18

Für fortgeschrittenere Go-Sprachszenarien können Sie eine Umgebungsdatei wie folgt laden:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch",
      "type": "go",
      "request": "launch", 
      "mode": "debug",
      "remotePath": "",
      "port": 2345,
      "host": "127.0.0.1",
      "program": "${workspaceFolder}",
      "envFile": "${workspaceFolder}/.env",
      "args": [], 
      "showLog": true
    }
  ]
}

Legen Sie die .env-Datei in Ihren Ordner und fügen Sie folgende Variablen hinzu:

KEY1="TEXT_VAL1"
KEY2='{"key1":val1","key2":"val2"}'

Details: https://medium.com/@reuvenharrison/using-visual-studio-code-to-debug-a-go-program-with-environment-variables-523fea268271

Kennzeichen
quelle
Dies ist die beste Antwort
KyleMit
6

Ich führe vscode über meine Befehlszeile aus, indem ich zu dem Ordner mit dem Code navigiere und ausführe

code .

Wenn Sie dies tun, werden alle Ihre bash/ zshVariablen an vs Code übergeben. Sie können Ihre .bashrc/ .zshrcDatei aktualisieren oder einfach tun

export KEY=value

bevor Sie es öffnen.

mvndaai
quelle
3

Könnten sie es schwieriger machen? Folgendes habe ich getan: Öffnen Sie die Systemeigenschaften, klicken Sie auf Erweitert, fügen Sie die Umgebungsvariable hinzu, fahren Sie Visual Studio herunter und starten Sie es erneut.

nmishr
quelle
Ich glaube, die ursprüngliche Post-Anfrage, um Umgebungsvariablen in der IDE zu setzen, ist, weil er das im System nicht tun wollte. Ein möglicher Grund könnte sein, dass er kein Administratorrecht hatte, um die Umgebungsvariable des Systems zu ändern
Bruce
1

Meine Antwort ist ziemlich spät. Ich hatte das gleiche Problem. Ich bin unter Windows 10. Folgendes habe ich getan:

  • Öffnen Sie eine neue Eingabeaufforderung (CMD.EXE).
  • Legen Sie die Umgebungsvariablen fest. set myvar1=myvalue1
  • Starten Sie VS Code an dieser Eingabeaufforderung, indem Sie Folgendes eingeben codeund dann drückenENTER
  • VS-Code wurde gestartet und erbte alle benutzerdefinierten Variablen, die ich im übergeordneten CMD-Fenster festgelegt hatte

Optional können Sie auch das Fenster Systemsteuerung -> Systemeigenschaften verwenden, um die Variablen dauerhafter festzulegen

Hoffe das hilft.

Sau001
quelle
Ich mag deine Antwort. Ist es aber auch möglich, Umgebungsvariablen in vscode zu definieren. Ich weiß, dass dies für die Terminals im vscode möglich ist, aber ich möchte, dass dies auch von allen vscode-Erweiterungen erkannt wird. Ich glaube, Ihre Methode hat das erreicht, was ich will, aber ich frage mich, ob vscode eine Einstellung hat, die die gleichen Dinge kann.
Bruce
Schließen Sie alle Instanzen von VS Code, wenn Sie dies versuchen. Eine laufende Instanz erzeugt lediglich ein neues Fenster und schließt den von Ihnen erzeugten Prozess.
Brent
0

Wenn Sie die Variablen bereits mit dem npm-Modul zugewiesen haben dotenv, sollten sie in Ihren globalen Variablen angezeigt werden. Das Modul ist hier .

Gehen Sie beim Ausführen des Debuggers zur Registerkarte "Variablen" (Rechtsklick zum erneuten Öffnen, falls nicht sichtbar) und öffnen Sie dann "global" und dann "process". Es sollte dann einen env-Abschnitt geben ...

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Harry Cramer
quelle
0

Da es Ihre Frage nicht beantwortet, sondern nach vm-Argumenten sucht, bin ich auf diese Seite gestoßen und es scheint keine andere zu geben. Wenn Sie also vm-Argumente übergeben möchten, ist dies der Fall

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "java",
      "name": "ddtBatch",
      "request": "launch",
      "mainClass": "com.something.MyApplication",
      "projectName": "MyProject",
      "args": "Hello",
      "vmArgs": "-Dspring.config.location=./application.properties"
    }
  ]
}
Alex
quelle