Arbeiten mit dem neuen VSCode-Editor in einem node.js-Projekt. Ich versuche, mein "Launch" -Profil für das Debuggen zu konfigurieren, indem ich die Datei launch.json bearbeite. Ich muss einen Verbindungsstring als Umgebungsvariable einrichten. Laut den Kommentaren in der Datei launch.json:
// Environment variables passed to the program.
"env": { }
Ich habe versucht, meine Umgebungsvariable wie folgt hinzuzufügen:
"env":
{
"CONNECTION_STRING": "Data Source=server;Initial Catalog=catalog;User ID=uid;Password=pwd;MultipleActiveResultSets=true"
}
Dies führt zu einem Fehler, wenn ich versuche, meine App zu starten. "Der OpenDebug-Prozess wurde unerwartet beendet". Ich habe noch keine Protokolldateien usw. gefunden, die das Problem erklären könnten.
Ich weiß, dass diese App ordnungsgemäß funktioniert, wenn ich die Umgebungsvariable einrichte und meine App über die Standard-Eingabeaufforderung starte. Die App wird auch wie erwartet ausgeführt, wenn ich meine Variable in der Datei launch.json auskommentiere. Ich kann einfach keine Verbindung zur Datenbank herstellen.
Ich gehe davon aus, dass ich das falsche Format in der Datei launch.json verwende, habe aber noch keine Möglichkeit gefunden, dies zum Laufen zu bringen.
Irgendwelche Ideen?
quelle
Property env is not allowd in launch.json
env
wurdeenvironment
in aktuellen Versionen von VSCode umbenannt, die Syntax wurde ebenfalls geändert. Siehe den Beitrag von @Gabriel unten.das funktioniert
Fügen Sie einfach Folgendes hinzu
"env": {"NODE_ENV": "development"}
"configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", //TODO: cmd as launch program "skipFiles": [ "<node_internals>/**" ], "program": "${workspaceFolder}\\index.js", "env": { "NODE_ENV": "development" } } ]
quelle
So unter Ihrem Betriebssystem:
"osx": { "MIMode": "lldb", "environment": [{"name": "DYLD_LIBRATY_PATH", "value": "/Users/x/boost_1_63_0/stage/lib/"}] },
quelle
cppdbg
in meinem Fall)Seit Ende 2016 können Sie auch die
envFile
für Node.js-Projekte verwenden :Siehe auch: Umgebungsvariablen aus externer Datei (Knoten) laden :
Bei Asp.Net Core-Projekten wird diese Funktion von vscode nicht nativ unterstützt, wurde jedoch kürzlich zur omnisharp vscode-Erweiterung hinzugefügt. Diese Funktion ist seit dem 10. September 2018 über Version 1.16.0 verfügbar .
quelle
"args": ["-p", "${SERVER_PORT}"]
zusammen mit"envFile": "${workspaceFolder}/.env"
, aber sieht aus wie"${SERVER_PORT}"
nicht funktioniertIch hatte das gleiche Problem und es stellte sich heraus, dass ich eine
.env
Datei in meinem Projektstamm hatte, die dielaunch.json
Einstellungen überschrieb . Sie werden gewarnt. :) :)quelle
Als Referenz stieß ich auf ein ähnliches Problem (im Jahr 2020, lange nachdem der in der oben akzeptierten Antwort erwähnte Fehler behoben wurde) für eine andere Sprache und möchte auf Folgendes hinweisen:
Gemäß der Dokumentation von Microsoft zu Startkonfigurationen sind viele gängige Optionen, einschließlich
"env"
nicht erforderlicher Funktionen, für alle verschiedenen Debugging- / Ausführungsumgebungen erforderlich. Das heißt, es scheint mir, dass nicht VS-Code die Option für Umgebungsvariablen "bereitstellt". sondern die Wahl der spezifischen Debugger-Erweiterung, um diese Funktion zu implementieren. Daher auch nichtProperty "env" is not allowed
Dies kann auftreten, weil die von Ihnen verwendete Sprache / der Debugger die Behandlung von Umgebungsvariablen nicht unterstützt oder nicht implementiert hat.
Wie qbiq bereits sagte, besteht eine schnelle Lösung für dieses Problem, wenn sich die Umgebungsvariablen bei den Starts nicht ändern, darin, sie zu exportieren und VS-Code mit diesem bestimmten Satz von Variablen auszuführen.
quelle
Version 1.49.1
Sie können env-Variablen hinzufügen, indem Sie die
env
Eigenschaft in Ihrer Datei launch.json oder dieenvFile
Eigenschaft verwenden, wobei der Wert der Speicherort Ihrer ENV-Datei ist.env Beispiel:
{ ... "env": { "PORT": "4000" } ... }
Beispiel für envFile:
{ ... "envFile": "${workspaceFolder}/server/.env", ... }
quelle
Um dieses Problem zu umgehen, können Sie beim Starten von VSCode Umgebungsvariablen festlegen, z. B. mithilfe dieses kleinen Powershell-Skripts:
param( $vars = @{} ) $vars.Keys | % { write-host "adding env variable: $_=$($vars[$_])" [Environment]::SetEnvironmentVariable($_, $vars[$_], "Process") } $ver = "0.1.0" & "$env:LOCALAPPDATA\Code\app-$ver\Code.exe"
Speichern Sie es als
vscode.ps1
und rufen Sie es über die Befehlszeile auf:powershell ".\vscode.ps1 -vars @{ 'NODE_ENV'='test'; 'SOMETHING'='else' }"
quelle
Im Juni 2020 ist dies unter OSX Catalina 10.15.5 immer noch sehr irreführend und fehlerhaft. Ich verwende VSCode-Insider mit der CodeLLDB-Erweiterung Version 1.5.3 :
Version: 1.47.0-insider Commit: 0913b1aa43191d8af0ccb4a133d9a8d7c1a81d69 Date: 2020-06-23T09:38:28.751Z (1 day ago) Electron: 8.3.3 Chrome: 80.0.3987.165 Node.js: 12.13.0 V8: 8.0.426.27-electron.0 OS: Darwin x64 19.5.0
Beim Starten des Debuggers mit dem
env
Schlüsselwort on wirdlaunch.json
Folgendes angezeigt:Kurz gesagt, wenn Sie die
"env"
Direktive in verwenden,launch.json
wird die Meldung im Screenshot angezeigt. Dies verhindert, dass der Debugger ausgeführt wird, was überraschenderweise keine Funktion bietet, aber fair genug ist.Bei Verwendung von
environment
anstelle vonenv
wird jedoch keine Fehlermeldung angezeigt, aber die Umgebungsvariablen sind zum Debuggen der Laufzeit nicht verfügbar, sodassgetenv(whatever)
der tatsächliche Wert für diesen Schlüssel nicht zurückgegeben wird: -!quelle