VSCode+Nodejs+Winston無法顯示訊息於console panel

這是上週發現的問題,那時候查了一上午找不到原因,今天再google一下,終於看到有其他人討論這個問題了,記錄一下讓碰到相同問題的也能知道狀況
github上的討論串在此有興趣的就直接去看一下吧:
連結在此

大概說明一下開發環境:
VSCode 1.9.1
Nodejs 6.9.4
Winston 2.3.1

VSCode針對Nodejs 6.3以上的版本,.vscode/launch.json的debug參數設定type需設為node2,用以對應 V8 Inspector Protocol的--inspect,相關細節請看官網連結
然後上週忽然意外就發生了,所有透過winston打算顯示在console panel上的訊息都無法顯示,一直到今天才在網路上找到上面列的討論串,目前問題還未解決,winston專案上有開啟了一個Issue,希望能早點更新,暫時的解法:

先於終端機執行要除錯的程式

node --inspect=17007 --debug-brk --nolazy app.js

這時應該會看到一行v8提示的訊息類似下面的範例

To start debugging, open the following URL in Chrome: chrome-devtools://devtools/remote/serve_file/@60cd6e859b9f557d2312f5bf532f6aec5f284980/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:17007/c49a1bf5-9d3e-452b-9b7e-2f09b49e2e44

這時候複製這個url到chrome開啟分頁,會進入chrome devtools,於此執行,然後呢??請放心chrome的console panel依然不會顯示winston拋出的訊息,不過這時候你會發現,剛剛執行node命令的終端機視窗會出現那些消失的訊息了,像下面這樣:



雖然不方便,不過勉強堪用,在還未更新之前,就先這樣除錯吧

後續修改:
今天測試發現,只要把launch.json中的 "console" 值,設為"integratedTerminal",那剛剛上面做的這麼多的事情就可以省下來了,debug相關的訊息會出現在vscode的終端機視窗,唯一的問題是,程式中段時,想下什麼語法驗證狀況,還是只能在console panel,不過至少可以省掉一些麻煩。




留言

這個網誌中的熱門文章

天雨粟、鬼夜哭、思念漫太古。

蘇打綠 - 御花園

Nodejs Base64 Url Safe