WebStorm和VSCode中調(diào)試代碼的配置教程

發(fā)現(xiàn)絕大多數(shù)前端開發(fā)者不會在IDE中對代碼進行調(diào)試,其中不乏一此已經(jīng)工作很多年的老手,很多人甚至認為IDE中不可能調(diào)試經(jīng)過編譯的代碼;其實,在IDE中調(diào)試前端代碼是完全可行的,即便是經(jīng)過編譯的代碼,只要有SourceMap,也完全可以實現(xiàn)在IDE中調(diào)試代碼;
為了提交開發(fā)效率,加強開發(fā)體驗,我特意研究了在 WebStorm 和 VSCode 中調(diào)試前端代碼的的配置方案,并撰寫成文,方便大家學習;

目錄

內(nèi)容

注意:

  • 對于需要經(jīng)過編譯的項目,若要在IDE內(nèi)進行調(diào)試,則需要在編譯時開啟SourceMap;

一.WebStorm的調(diào)試配置步驟

  1. 給Chrome安裝JetBrains IDE Support插件;
    JetBrains插件
  1. 打開WebStorm的菜單:Run/Edit Configurations...;
    WebStorm配置菜單路徑
  2. 點擊添加+按鈕,選擇 JavaScript Debug 選項,以添加一個 JavaScript 的調(diào)試配置;
    添加選項
  3. 配置以下字段,然后點擊Apply應用配置,并點擊ok完成配置;
    • Name : 配置的名字;
    • Share : 選中此復選框可使運行/調(diào)試配置可供其他團隊成員使用;
    • URL : 項目服務的URL,即:在瀏覽器中訪問項目的URL地址;
    • Browser : 運行項目的瀏覽器;由于我們是在Chrome中運行調(diào)試項目,所以這里選擇Chrome;
    • Remote URL : 服務器上相應文件或文件夾的絕對URL地址;僅當項目根目錄下的本地文件夾結(jié)構(gòu)與服務器上的文件夾結(jié)構(gòu)不同時,才需要這些映射。如果結(jié)構(gòu)相同,WebStorm本身通過解析服務器上副本的URL地址來“檢索”本地文件的路徑。
      配置內(nèi)容

下面是我整理的各個配置字段的詳細說明:

WebStorm調(diào)試配置說明

  1. 在項目中選擇剛才的配置選項,然后點擊Debug,Chrome瀏覽器便會自動啟動,;
    啟動調(diào)試

    瀏覽器自動啟動
  2. 現(xiàn)在可以在WebStorm中打斷點進行調(diào)試了,也可以使用條件斷點,甚至可以在WebStorm中查看變量的值,一切就像在瀏覽器中調(diào)試那樣,如下圖:


    添加斷點
  3. 當代碼運行到斷點處時,WebStorm就會自動跳轉(zhuǎn)到斷點處,并高亮顯示,如下圖:


    調(diào)試

二.VSCode的調(diào)試配置步驟

  1. 給VSCode安裝擴展插件 Debugger for Chrome 插件;

    安裝DebuggerForChrome插件

  2. 打開調(diào)試配置文件:調(diào)試/打開配置 或者 調(diào)試/添加配置;

    調(diào)試配置菜單路徑

  3. 如果項目中沒有 .vscode/launch.json 配置文件,則會彈出如下窗口,供您選擇代碼的運行環(huán)境,在這里,我們選擇 Chrome

    選擇代碼運行環(huán)境

  4. 配置調(diào)試配置對象,需要配置的字段有以下:

    • name : 配置的名字;
    • type : 項目的運行環(huán)境;
    • request : 調(diào)試工具的運行方式;
    • url : 項目的調(diào)試服務地址;
      你也可以點擊 添加配置... 按鈕添加新的配置對象;
      VSCode調(diào)試配置字段
  5. 打開調(diào)試窗口,選擇正確的調(diào)試配置對象,然后點擊啟動調(diào)試按鈕開始調(diào)試,如下圖:

    VSCode_啟動調(diào)試

  6. 在代碼中添加斷點;


    VSCode添加調(diào)試斷點
  7. 當代碼運行到斷點處,VSCode會自動跳轉(zhuǎn)到相應的斷點處,并高亮顯示,此時可以在VScode的調(diào)試窗口中查看變量、調(diào)用堆棧等等,與在瀏覽器里直接調(diào)試一樣;


    VSCode_調(diào)試

三.在WebStorm中運行單個JS文件

如果你只是想簡單測試下一個不需要編譯的代碼段 或者 一個JS文件,通常我們的做法無非是以下兩種方式:

  • 創(chuàng)建一個HTML文件,把被測試的代碼段或文件引入該HTML文件,然后用瀏覽器打開該HTML文件,在瀏覽器里測試;
  • 把被測代碼復制到瀏覽器的控制里 或 Sinppets 中執(zhí)行;

這兩種方式都比較麻煩,都需要切換編輯政環(huán)境;

其實,如果你用的是 WebStorm 編輯器,會有更和簡單的調(diào)試方法,如下:

在被測試的文件上點擊右鍵, 然后選擇 Run ‘xxx.js’ 或者 Debug ‘xxx.js’;

WebStorm單文件調(diào)試1
  • Run ‘xxx.js’ : 只運行該JS文件,不能設置斷點;
  • Debug ‘xxx.js’ : 可以通過編輯器 或 JS中的 debugger 命令設置斷點;
    然后該JS文件就會在 WebStorm 中從開頭執(zhí)行到結(jié)尾,并且,通過 console 輸出的內(nèi)容會顯示在Debug 窗口中的 Console 空格中;如下圖:
WebStorm單文件調(diào)試2

另外,如果你打了斷點,代碼會停在斷點處,此時你還可以像在瀏覽器里調(diào)試一樣,可以查看 變量信息、調(diào)用堆棧 等等,如下圖:


WebStorm單文件調(diào)試3

這種調(diào)試方式的本質(zhì)

其實,當你這樣運行一個JS文件后,WebStorm 會自動生成一個 配置文件,如下圖所示:


WebStorm單文件調(diào)試4

該配置文件的詳細配置信息如下圖:


WebStorm單文件調(diào)試5

需要注意的是:

  • 該文件的配置類型是 Node.js 而不是 JavaScript Debug,所以被調(diào)試的JS文件是通過 Node 執(zhí)行的;
  • Node parameters : 在通過 Node 執(zhí)行被調(diào)試的 JS 文件時,傳給 node 命令的參數(shù);
  • Node interpreter : node 命令的路徑;
  • Working dirctory : 項目的根目錄;
  • JavaScript file : 被調(diào)試的 js 文件;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,071評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,360評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,895評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,123評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,643評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,559評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,742評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 43,981評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,354評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,707評論 2 370

推薦閱讀更多精彩內(nèi)容