2017-04-04 17 views
5

Mam skrypt npm, który próbuję debugować. Używam vscode, więc pomyślałem, że utworzę konfigurację debugowania i przejdę przez nią z debuggerem.Jaki jest właściwy sposób debugowania skryptu npm za pomocą vscode?

Mój skrypt npm wygląd jest:

"scripts": { 
    ... 
    "dev": "node tasks/runner.js", 
} 

Stworzyłem więc następujące debugowania config:

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
      "type": "node", 
      "request": "launch", 
      "name": "Launch Program", 
      "runtimeExecutable": "npm", 
      "cwd": "${workspaceRoot}", 
      "runtimeArgs": [ 
       "run", "dev" 
      ], 
      "port": 5858, 
      "stopOnEntry": true 
     } 
    ] 
} 

I kiedy ogień go skrypt działa, ale vscode nigdy nie jest w stanie połączyć się i ja pojawia się błąd:

Cannot connect to runtime via 'legacy' protocol; consider using 'inspector' protocol (timeout after 10000 ms).

Próbowałem, dodając protokół inspektora:

 { 
      "type": "node", 
      "request": "attach", 
      "name": "Attach (Inspector Protocol)", 
      "port": 9229, 
      "protocol": "inspector" 
     } 

i działa skrypt npm poprzez:

npm run dev --inspect 

I tym razem pojawia się błąd:

Ensure Node was launched with --inspect. Cannot connect to runtime process, timeout after 10000 ms - (reason: Cannot connect to the target: connect ECONNREFUSED 127.0.0.1:9229).

Nie jestem pewien, co część mi brakuje.

Edycja za duplikatu tagu

widzę innej kwestii Re: debugowanie skryptu npm poprzez vscode, ale szczegóły w innym pytanie nie są tak szczegółowe i konkretne. Jeśli ktoś szuka konkretnych komunikatów o błędach vscode, które napotkałem, lub typu konfiguracji, które posiadałem, niekoniecznie otrzyma szczegółową odpowiedź na pytanie, które daje wybrana odpowiedź na to pytanie.

+1

Możliwy duplikat [Jak debugować za pomocą NPM uruchamiać skrypty z VSCode?] (Http://stackoverflow.com/questions/34835082/how-to-debug-using-npm-run-scripts-from-vscode) –

Odpowiedz

8

Nie powinieneś próbować debugować kodu npm script, ponieważ to, co naprawdę chcesz, to dołączenie debuggera do skryptu uruchamianego za pomocą polecenia npm run (NPM jest tu używany tylko jako narzędzie do uruchamiania zadań).

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
     "type": "node", 
     "request": "launch", 
     "name": "Launch Program", 
     "program": "${workspaceRoot}/tasks/runner.js" 
     } 
    ] 
} 

Jeśli naprawdę chcesz, aby uruchomić go za pomocą skryptu npm, a następnie można użyć następującej konfiguracji:

{ 
    "type": "node", 
    "request": "launch", 
    "name": "Launch via NPM", 
    "runtimeExecutable": "npm", 
    "windows": { 
    "runtimeExecutable": "npm.cmd" 
    }, 
    "runtimeArgs": [ 
    "run-script", 
    "dev" 
    ], 
    "port": 5858 
} 

ale trzeba także change Twojego polecenia skryptu (określić port debugowania)

"scripts": { 
    "dev": "node --nolazy --debug-brk=5858 tasks/runner.js" 
    }, 

Możesz eksplorować różne konfiguracje debugowania, klikając ikonę koła zębatego i wybierając jedną z nich.

enter image description here

Więcej o node.js debugowania można znaleźć w VS Code documentation.

+0

Niesamowite! Dziękuję za odpowiedź i szczegółową odpowiedź. Doceniam to. –

Powiązane problemy