Vscode: Node-Programm kann nicht mit WSL debuggt werden

Erstellt am 18. Juli 2018  ·  4Kommentare  ·  Quelle: microsoft/vscode


  • VSCode-Version: 1.25.1
  • Betriebssystemversion: Windows 10 Home 1803

Ich versuche, eine Knotenanwendung mit Windows Subsytem für Linux zu debuggen, aber ich glaube nicht, dass die Pfade übersetzt werden.

Dies ist meine launch.json

{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch NestJS",
      "useWSL": true,
      "console": "integratedTerminal",
      "runtimeExecutable": "npm",
      "runtimeArgs": [
        "run-script",
        "start:dev"
      ],
      "port": 5000,
    }
  ]
}

und dies ist, was in meiner Konsole angezeigt wird, nachdem versucht wurde, zu debuggen:

isiah@isiah-acer:/mnt/c/Users/Isiah/Documents/Programming_Projects/etc/podcast_db/new-api$ cd "c:\Users\Isiah\Documents\Programming_Projects\etc\podcast_db\new-api" ; "C:\WINDOWS\System32\bash.exe" -ic "npm run-script start:dev"
-bash: cd: c:\Users\Isiah\Documents\Programming_Projects\etc\podcast_db\new-api: No such file or directory
C:\WINDOWS\System32\bash.exe: command not found

Und für weitere Informationen npm run-script start:dev läuft nodemon und hier ist meine nodemon.json:

{
  "watch": [
    "src"
  ],
  "ext": "ts",
  "ignore": [
    "src/**/*.spec.ts"
  ],
  "exec": "node -r tsconfig-paths/register --inspect=5000 --require ts-node/register src/main.ts"
}


Tritt dieses Problem auf, wenn alle Erweiterungen deaktiviert sind?: Ja

WSL bug debug verified

Hilfreichster Kommentar

Ich denke, dies sollte funktionieren, wenn Sie "console": "integratedTerminal" aus Ihrer Startkonfiguration entfernen. "useWSL": true sollte ausreichen.

Zum Debuggen eines solchen Setups verwende ich die Erweiterung WSL workspaceFolder und füge meinen Startkonfigurationen Folgendes hinzu:

"localRoot": "${workspaceFolder}",
"remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",

Beispiel, das für mich funktioniert:

{
  "type": "node",
  "request": "launch",
  "name": "Run NPM script in WSL",
  "useWSL": true,
  "localRoot": "${workspaceFolder}",
  "remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",
  "runtimeExecutable": "npm",
  "runtimeArgs": [
    "run-script",
    "foo",
  ],
  "internalConsoleOptions": "openOnSessionStart",
  "skipFiles": [
    "<node_internals>/**/*.js",
  ],
},

Zum Debuggen von Mokka-Tests verwende ich diese Startkonfiguration:

{
  "type": "node",
  "request": "launch",
  "name": "Run mocha tests in WSL",
  "useWSL": true,
  "localRoot": "${workspaceFolder}",
  "remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",
  "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
  "args": [
    "-u",
    "tdd",
    "--timeout",
    "999999",
    "--colors",
    "--exit",
    "${command:extension.vscode-wsl-workspaceFolder}/tests/test.js"
  ],
  "internalConsoleOptions": "openOnSessionStart",
  "skipFiles": [
    "<node_internals>/**/*.js",
  ],
},

Hinweis: Die Ausgabe erfolgt auf der Registerkarte "Debug Console".

Alle 4 Kommentare

Dies ist ein komplexes Setup, das noch nicht unterstützt wird.

Ich denke, dies sollte funktionieren, wenn Sie "console": "integratedTerminal" aus Ihrer Startkonfiguration entfernen. "useWSL": true sollte ausreichen.

Zum Debuggen eines solchen Setups verwende ich die Erweiterung WSL workspaceFolder und füge meinen Startkonfigurationen Folgendes hinzu:

"localRoot": "${workspaceFolder}",
"remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",

Beispiel, das für mich funktioniert:

{
  "type": "node",
  "request": "launch",
  "name": "Run NPM script in WSL",
  "useWSL": true,
  "localRoot": "${workspaceFolder}",
  "remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",
  "runtimeExecutable": "npm",
  "runtimeArgs": [
    "run-script",
    "foo",
  ],
  "internalConsoleOptions": "openOnSessionStart",
  "skipFiles": [
    "<node_internals>/**/*.js",
  ],
},

Zum Debuggen von Mokka-Tests verwende ich diese Startkonfiguration:

{
  "type": "node",
  "request": "launch",
  "name": "Run mocha tests in WSL",
  "useWSL": true,
  "localRoot": "${workspaceFolder}",
  "remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",
  "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
  "args": [
    "-u",
    "tdd",
    "--timeout",
    "999999",
    "--colors",
    "--exit",
    "${command:extension.vscode-wsl-workspaceFolder}/tests/test.js"
  ],
  "internalConsoleOptions": "openOnSessionStart",
  "skipFiles": [
    "<node_internals>/**/*.js",
  ],
},

Hinweis: Die Ausgabe erfolgt auf der Registerkarte "Debug Console".

@ n0v1 Hat für mich gearbeitet. Vielen Dank!

Dies ist ein häufiger Anwendungsfall bei der Entwicklung auf WSL, und das Debuggen für mich ist für meine Arbeit von entscheidender Bedeutung. Nun, damit Python funktioniert 🤞

Wir haben gerade die Remote-Entwicklung mit VS Code angekündigt. Weitere Informationen finden Sie im Blog-Beitrag unter https://code.visualstudio.com/blogs/2019/05/02/remote-development

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen