1. Node debug
Nodejs提供了一個內建調試器來幫助開發者調試應用程序。使用debug模式時,Node.js 會啓動Debugger模塊,而後經過監聽默認 5858 端口將命令行的輸入傳送到內建調試模塊以達到調試的目的。html
同時支持--debug 和 --debug-brk參數。這兩個參數只會啓動Debugger監聽模式,不會進入命令行調試模式,並且前者會運行完全部代碼,一般可用於事件調試,後者會在進入時中斷,方便從頭開始調試。node
運行:node debug [須要調試的js]web
調試命令說明:chrome
repl 打開js上下文即時求值環境,可查看變量 run 執行腳本,在第一行暫停 restart 從新執行腳本 cont, c 繼續執行,直到遇到下一個斷點 next, n 單步執行 step, s 單步執行並進入函數 out, o 從函數中步出 setBreakpoint(), sb() 當前行設置斷點 setBreakpoint(‘f()’), sb(...) 在函數f的第一行設置斷點 setBreakpoint(‘script.js’, 20), sb(...) 在 script.js 的第20行設置斷點 clearBreakpoint, cb(...) 清除全部斷點 backtrace, bt 顯示當前的調用棧 list(5) 顯示當前執行到的先後5行代碼 watch(expr) 把表達式 expr 加入監視列表 unwatch(expr) 把表達式 expr 從監視列表移除 watchers 顯示監視列表中全部的表達式和值 kill 終止當前執行的腳本 scripts 顯示當前已加載的全部腳本 version 顯示v8版本
2. Node inspector
node-inspector是基於Node.js的Debugger模塊進行調試的,是經過websocket方式來轉向debug輸入輸出的。所以,咱們在調試前要先啓動node-inspector來監聽Nodejs的debug調試端口。npm
安裝: npm install –g node-inspector
運行:node-inspector & 或 node-inspector --web-port=5100
//啓動調試,默認8080端口或者指定端口node --debug-brk [須要調試的js] 或 node-debug [須要調試的js]
瀏覽器
控制檯會返回debugger listening on port 5858
, 如今打開瀏覽囂,訪問 http://localhost:8080/debug?p... ,這時候就會打開一個很像Chrome內置調試工具的界面,而且代碼斷點在第一行,下面就可使用這個來調試了。websocket
缺點:頁面不能刷新,每次調試須要從新運行 「node-debug [須要調試的js]"socket
3. V8_inspector
現現在,新版本的Chrome瀏覽器和新版本的Node.js支持經過一個新的調試協議能互相直接通信了,就再也不須要node-inspector了。webstorm
環境:編輯器
步驟:
打開開發者工具 -> 設置 -> Experiments
,按SHIFT鍵6次,顯示隱藏選項後勾選Node debuggingnode –-inspect [須要調試的js]
。用Canary版瀏覽器打開終端輸出的連接。4. webstorm
安裝webstorm,webstorm也是一個好軟件,支持多平臺。特別提醒ws是是一個商業收費軟件,能夠試用30天。
安裝: webstorm編輯器
使用: 配置debug調試的配置信息(以下圖)。再點擊debug