[英]Can I run/debug Heroku Node.js app locally with VSCode?
在Microsoft VSCode v1.6.1上 ,如何:
我創建了一個Heroku Node.js應用程序,它使用CLI命令啟動:
heroku local web
並成功從5000端口開始。
我正在嘗試使用Microsoft Visual Studio Code調試它,使用以下launch.json
配置:
{
"name": "Launch",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/app.js",
"stopOnEntry": false,
"args": [],
"cwd": "${workspaceRoot}",
"preLaunchTask": null,
"runtimeExecutable": "/usr/local/bin/heroku",
"runtimeArgs": [
"local web",
],
"env": {
"NODE_ENV": "development"
},
"console": "internalConsole",
"sourceMaps": false,
"outFiles": []
}
但VSCode自動將--debug-brk
參數傳遞給heroku,導致錯誤:
/usr/local/bin/heroku --debug-brk=23080 'local web' app.js
! `--debug-brk=23080` is not a heroku command.
! See `heroku help` for a list of available commands.
VSCode也沒有找到沒有完整路徑的heroku命令(似乎它沒有加載PATH
環境變量)。
有關如何設置編輯器的任何想法?
以下解決方案適合我:
1)在procfile中,將參數--debug添加到節點進程
web: node --debug server.js
默認情況下,調試器偵聽端口5858
2)運行節點進程后,打開VSCode並將以下配置添加到launch.json文件中
{
"type": "node",
"request": "attach",
"name": "Attach to Process",
"port": 5858
}
3)最后,單擊VSCode中的播放按鈕,選擇“附加到進程”,它應該調試您的進程。
以下解決方案對我有用。 在我的package.json“腳本”中,我補充說:
"debug": "node --inspect-brk server.js"
然后,在launch.json中,我將一個envFile條目添加到默認的“通過NPM啟動”配置,現在看起來像這樣:
{
"type": "node",
"request": "launch",
"name": "Launch via NPM",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"debug"
],
"port": 9229,
"envFile": "${workspaceFolder}/.env"
}
上述解決方案使VSCode調試器能夠通過npm腳本運行我的服務器,並且我的服務器使用我的.gitignore'd .env文件中設置的env vars運行,就像在“常規” Heroku node.js工作流中一樣 。
由於某些原因,我提出的解決方案對我不起作用,因此我一直在努力。 但是,另一種解決方案確實如此,我想我會分享。
從VS Code中的默認調試選項中選擇Attach by Process ID
當您使用此配置啟動調試器時,它應列出要附加到的可用進程,其中一個應該只是server.js。 這需要每次手動附加,如果其他自動附件適合您,可能會更好,但這仍然是一個可行的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.