(注:我的具體使用情況看起來很複雜,但基本思想是不是!)VSCode - 如何使用啓動配置調試啓動自己的調試器的節點程序?
我有啓動泊塢容器,它本身包含並開始使用Nodemon
啓動另一個咕嘟咕嘟腳本咕嘟咕嘟腳本調試模式下的最終節點腳本!該Nodemon咕嘟咕嘟腳本運行裏面的泊塢容器看起來是這樣的:
nodemon({
"script": `start.js`,
"nodeArgs": [`--debug=0.0.0.0:5858`, "-nolazy"],
"ext": "js",
"restartable": true
});
我希望能夠在Visual Studio代碼按[F5]
,都最終腳本起步,並沒有VSCode的調試器連接到它!
什麼確實工作:
如果我手動啓動第一咕嘟咕嘟腳本,在終端,泊塢窗容器啓動時,與Nodemon其他嵌入式咕嘟咕嘟腳本執行和最終的腳本啓動。我可以然後按[F5]
VSCode啓動attach
啓動配置,我可以調試!端口5858
由Docker公開,一切正常。
我想什麼:
我希望能夠跳過腳本的手動啓動的終端。我想要一個VSCode啓動配置,它可以自行完成所有操作=>在VSCode集成終端中啓動腳本,並將調試器附加到腳本本身啓動的調試過程中。
我試圖:
與
preLaunchTask
任務的"request": "attach"
啓動配置。該任務正在啓動第一個Gulp腳本。這種方法的問題是,任務永遠不會結束:它啓動終端中的第一個腳本(該任務有一個「"_runner": "terminal"
」),但最終腳本正在偵聽並且不會退出(它實際上是偵聽請求)...這似乎阻止VSCode調試器啓動,因爲任務永遠不會退出。A
"request": "launch"
啓動啓動第一個腳本的配置。但是在這裏,即使它看起來正常工作(出現橙色的調試條),調試也不會實際工作。如果我理解正確,這是因爲啓動配置本身(在指定的端口上)啓動節點調試器,因此在Docker容器內由Nodemon啓動的調試器將永遠不會被偵聽。
換句話說:我只是想打[F5]
這樣一個腳本在綜合終端推出,無需調試,然後VSCode將一個調試器附加到所產生的127.0.0.1:5858
調試過程中,wathever怎麼這個過程實際上是開始。
更新:我也有一個建議,在Github上關於嘗試使用compound
啓動配置,但它也不起作用:https://github.com/Microsoft/vscode/issues/36685
調試器仍然沒有踢...我的'啓動配置':https://pastebin.com/raw/RBSJu0kx和我的'tasks.json':https://pastebin.com/raw/WnacJZp5。應用程序可以正常啓動,但只有在終端中手動退出應用程序時調試器纔會啓動......任何想法?謝謝你的幫助! – electrotype
我懂了! :-)你的例子的問題似乎是'「startsPattern」'。如果我使用'「activeOnStart」:false',然後'「startsPattern」:「調試過程即將開始時的一些模式」,它就起作用了!請修改您的答案,我會接受它! – electrotype
我剩下的唯一問題是,如果發生更改並且Nodemon重新加載在Docker中運行的應用程序,則VSCode的調試器將停止,但在嘗試重新掛接時過早超時('「restart」:true')...在調試過程之前超時實際上在Docker中重新啓動。如果你有任何想法來解決這個問題,我全是耳朵! – electrotype