2017-04-04 140 views
5

我有一個npm腳本,我正在嘗試調試。我使用vscode,所以我想我會創建一個調試配置,並與調試器一起通過它。使用vscode調試npm腳本的正確方法是什麼?

我NPM腳本的樣子是:

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

因此,我創建了以下調試配置:

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

當我火了腳本運行,但vscode是從來沒有能夠連接和我得到的錯誤:

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

我嘗試添加一個檢查協議:

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

,並通過運行該腳本故宮:

npm run dev --inspect 

這一次,我得到的錯誤:

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).

我不知道我錯過了什麼部分。每個重複的標記

編輯我看到其他的問題回覆:通過vscode調試NPM腳本,但在其他問題的細節,答案並不詳細情況和具體。如果有人正在搜索我遇到的具體vscode錯誤消息或我配置的類型,他們不一定會得到這個問題的答案詳細信息,這個問題的選擇答案給出。

+1

[如何使用npm從VSCode運行腳本進行調試?](http://stackoverflow.com/questions/34835082/how-to-debug-using-npm-run-scripts-from-vscode) –

回答

8

您不應該嘗試調試npm script,因爲您真正想要的是將調試器附加到使用npm run命令啓動的腳本(此處僅將NPM用作任務運行器)。

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

如果你真的想運行它使用NPM腳本,那麼你可以使用以下配置:

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

,但你也必須change你的腳本命令(指定調試端口)

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

只需點擊齒輪圖標並選擇一個,即可探索各種調試配置。

enter image description here

更多關於Node.js的調試可以在VS Code documentation找到。

+0

真棒!感謝您的回覆和詳細的答覆。我很感激。 –

相關問題