Vscode: Impossible de déboguer le programme Node à l'aide de WSL

Créé le 18 juil. 2018  ·  4Commentaires  ·  Source: microsoft/vscode


  • Version VSCode: 1.25.1
  • Version du système d'exploitation: Windows 10 Famille 1803

J'essaie de déboguer une application Node à l'aide de Windows Subsytem pour Linux mais je ne pense pas que les chemins se traduisent.

C'est mon 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,
    }
  ]
}

et voici ce qui apparaît dans ma console après avoir tenté de déboguer:

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

Et pour plus d'informations, npm run-script start:dev exécute nodemon et voici mon 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"
}


Ce problème se produit-il lorsque toutes les extensions sont désactivées?: Oui

WSL bug debug verified

Commentaire le plus utile

Je pense que cela devrait fonctionner lors de la suppression de "console": "integratedTerminal" de votre configuration de lancement. "useWSL": true devrait suffire.

Pour déboguer une telle configuration, j'utilise l'extension WSL workspaceFolder et ajoute ce qui suit à mes configurations de lancement:

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

Exemple qui fonctionne pour moi:

{
  "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",
  ],
},

Pour déboguer les tests mocha, j'utilise cette configuration de lancement:

{
  "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",
  ],
},

Remarque: la sortie sera dans l'onglet "Console de débogage".

Tous les 4 commentaires

Il s'agit d'une configuration complexe qui n'est pas encore prise en charge.

Je pense que cela devrait fonctionner lors de la suppression de "console": "integratedTerminal" de votre configuration de lancement. "useWSL": true devrait suffire.

Pour déboguer une telle configuration, j'utilise l'extension WSL workspaceFolder et ajoute ce qui suit à mes configurations de lancement:

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

Exemple qui fonctionne pour moi:

{
  "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",
  ],
},

Pour déboguer les tests mocha, j'utilise cette configuration de lancement:

{
  "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",
  ],
},

Remarque: la sortie sera dans l'onglet "Console de débogage".

@ n0v1 a travaillé pour moi. Je vous remercie!

C'est un cas d'utilisation courant maintenant avec le développement sur WSL et le débogage qui fonctionne pour moi est essentiel pour mon travail. Maintenant, pour faire fonctionner python 🤞

Nous venons d'annoncer le développement à distance avec VS Code, consultez le blog pour plus de détails https://code.visualstudio.com/blogs/2019/05/02/remote-development

Cette page vous a été utile?
0 / 5 - 0 notes