2016-10-09 2 views
0

Ich verwende derzeit das folgende Skript, um meine nodejs-Anwendung zu starten. Ich lege danach den vscode Debugger es, das funktioniert:

"dev": "NODE_PATH=\"$(pwd)\" NODE_ENV=development nodemon -r babel-register -r babel-polyfill --nolazy --debug-brk=36598 ./src/index.js" 

Ich mag würde jedoch die eingebaute „Start“ Option in vscode verwenden.

In der launch.json unter Konfigurationen unter einer Konfiguration gibt es ein Feld namens env. Ich möchte den NODE_PATH dort hinzufügen und seinen Wert auf das aktuelle Verzeichnis setzen.

{ 
    "name": "Launch", 
    "type": "node", 
    "request": "launch", 
    "program": "${workspaceRoot}/src/index.js", 
    "stopOnEntry": false, 
    "args": [], 
    "cwd": "${workspaceRoot}", 
    "preLaunchTask": null, 
    "runtimeExecutable": null, 
    "runtimeArgs": [ 
     "-r", 
     "babel-register", 
     "-r", 
     "babel-polyfill", 
     "--nolazy" 
    ], 
    "env": { 
     "NODE_ENV": "development", 
     "NODE_PATH": "$(pwd)" // <--- here 
    }, 
    "console": "internalConsole", 
    "sourceMaps": false, 
    "outDir": null 
} 

Das Problem hierbei ist, dass die Variable tatsächlich eingestellt wird er als Befehl „$ (PWD)“ statt laufen und die Ausgabe zu speichern.

Wenn ich habe folgendes in meinem Code:

console.log(process.env.NODE_PATH); 

Es gibt die folgenden (anstelle des aktuellen Verzeichnispfad):

$(pwd) // <--- wrong, I was expecting '/home/karl/dev/my_project' 

Ich versuchte "NODE_PATH=\"$(pwd)\"", in den runtimeArgs und args Einstellung aber das funktioniert auch nicht.

Irgendwelche Ideen?

Antwort

0

können Sie ${cwd} verwenden - die aktuelle Arbeitsverzeichnis Aufgabe Läufer beim Start, als auf angegeben VS Code Variable substitution

so in Ihrem Fall

"NODE_PATH": "${cwd}" 
0

{

"version": "0.2.0", 
"configurations": [ 
    { 
     "type": "node", 
     "request": "launch", 
     "name": "Launch Program", 
     "program": "/Path_to_start_file/main.js", 
     "env":{ 
      "NODE_PATH": "/Path_to_node_modules/node_modules" 
     } 
    } 
] } 

Dies löste das Problem m für mich.

Verwandte Themen