日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

Visual Studio Code 前端调试不完全指南

發(fā)布時(shí)間:2023/12/19 HTML 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Visual Studio Code 前端调试不完全指南 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文最初發(fā)布于我的個(gè)人博客:咀嚼之味

Visual Studio Code (以下簡(jiǎn)稱 vscode) 如今已經(jīng)代替 Sublime,成為前端工程師們最喜愛的代碼編輯器。它作為一個(gè)大型的開源項(xiàng)目,不斷推陳出新;社區(qū)中涌現(xiàn)出大量?jī)?yōu)質(zhì)的插件,以支持我們更加舒服地進(jìn)行開發(fā)工作。在近期的工作中,我嘗試通過 vscode 來提升調(diào)試代碼的幸福度,積累了一點(diǎn)點(diǎn)小心得在此與大家分享一下。

接下來的內(nèi)容將從以下幾方面進(jìn)行展開:

  • launch / attach

  • 調(diào)試前端代碼

  • 調(diào)試通過 Nodemon 啟動(dòng)的 Node 服務(wù)器

  • 1. launch / attach

    要使用 vscode 的調(diào)試功能,首先就得配置 .vscode/launch.json 文件。以最簡(jiǎn)單的 Node 調(diào)試配置為例:

    {"version": "0.2.0","configurations": [{"type": "node","request": "launch","name": "Launch","program": "${workspaceRoot}/index.js"},{"type": "node","request": "attach","name": "Attach","port": 5858}] }

    其中最重要的參數(shù)是 request ,它的取值有兩種 launch 和 attach。

    • launch模式:由 vscode 來啟動(dòng)一個(gè)獨(dú)立的具有 debug 模式的程序

    • attach模式:附加于(也可以說“監(jiān)聽”)一個(gè)已經(jīng)啟動(dòng)的程序(必須已經(jīng)開啟 Debug 模式)

    這兩種截然不同的模式到底有什么具體的應(yīng)用場(chǎng)景呢?且看后文。

    2. 調(diào)試前端代碼

    通過 vscode 調(diào)試前端代碼主要依賴于一個(gè)插件:Debugger for Chrome,該插件主要利用 Chrome 所開放出來的接口 來實(shí)現(xiàn)對(duì)其渲染的頁面進(jìn)行調(diào)試。可以通過 Shift + Cmd + X 打開插件中心,搜索對(duì)應(yīng)插件后直接安裝。安裝完成并重新加載 vscode 后,可以直接點(diǎn)擊調(diào)試按鈕并創(chuàng)建新的啟動(dòng)配置。如果你之前已經(jīng)創(chuàng)建過啟動(dòng)配置了,就可以直接打開 .vscode/launch.json 進(jìn)行修改。

    其中調(diào)試 Chrome 頁面的配置如下所示:

    {"version": "0.2.0","configurations": [{"type": "chrome","request": "launch","name": "啟動(dòng)一個(gè)獨(dú)立的 Chrome 以調(diào)試 frontend","url": "http://localhost:8091/frontend","webRoot": "${workspaceRoot}/frontend"}] }

    如之前所述,通過第一個(gè) launch 配置就能啟動(dòng)一個(gè)通過 vscode 調(diào)試的 Chrome。大家可以直接使用我組織好的項(xiàng)目 zry656565/vscode-debug-sample 進(jìn)行測(cè)試,測(cè)試方法在該項(xiàng)目的 README 里面寫得很清楚了。簡(jiǎn)要步驟概括為:

  • npm run frontend

  • 啟動(dòng)調(diào)試配置:“啟動(dòng)一個(gè)獨(dú)立的 Chrome 以調(diào)試 frontend”

  • 在 frontend/index.js 中加斷點(diǎn)

  • 訪問 http://localhost:8091/frontend/

  • 延伸問題

    使用 launch 模式調(diào)試前端代碼存在一個(gè)問題,就是 vscode 會(huì)以新訪客的身份打開一個(gè)新的 Chrome 進(jìn)程,也就是說你之前在 Chrome 上裝的插件都沒法在這個(gè)頁面上生效(如下圖所示)。

    在這種情況下 attach 模式就有它存在的意義了:對(duì)一個(gè)已經(jīng)啟動(dòng)的 Chrome 進(jìn)行監(jiān)聽調(diào)試。

    {"version": "0.2.0","configurations": [{"type": "chrome","request": "attach","name": "監(jiān)聽一個(gè)已經(jīng)啟動(dòng)調(diào)試模式的 Chrome","port": 9222,"url": "http://localhost:8091/frontend","webRoot": "${workspaceRoot}/frontend"}] }

    其中 9222 是 Chrome 的調(diào)試模式推薦的端口,可以根據(jù)需要進(jìn)行修改。不過目前我并沒有成功實(shí)施這個(gè)設(shè)想,對(duì)此有興趣的同學(xué)可以從下面這兩個(gè)鏈接入手去研究一下:

    • Chrome DevTools Protocol Viewer

    • Debugger for Chrome / Attach

    有一部分遇到的問題可以直接在 Debugger for Chrome 的 FAQ 中得到解答。

    3. 調(diào)試通過 Nodemon 啟動(dòng)的 Node 服務(wù)器

    如今,使用 Node 服務(wù)器開發(fā)一些中間層的服務(wù)也慢慢納入了所謂“大前端”的范疇。而在開發(fā) Node 服務(wù)時(shí),我們通常要借助類似于 nodemon 這樣的工具來避免頻繁手動(dòng)重啟服務(wù)器。在這種情況下,我們又如何利用 vscode 來進(jìn)行斷點(diǎn)調(diào)試呢?先來看看示例配置文件:

    {"version": "0.2.0","configurations": [{"type": "node","request": "attach","name": "附加于已啟動(dòng)的 Node 服務(wù)器(debug模式)","port": 5858,"restart": true},{"type": "node","request": "attach","name": "附加于已啟動(dòng)的 Node 服務(wù)器(inspect模式)","port": 9229,"restart": true}] }

    首先,為了配合 nodemon 在監(jiān)聽到文件修改時(shí)重啟服務(wù)器,此處需要添加一個(gè) restart 參數(shù)。同時(shí)大家可能注意到了,這里給出了兩種模式,大家可能根據(jù)以下區(qū)別來選擇合適自己的協(xié)議:

    Runtime'Legacy Protocol''Inspector Protocol'
    io.jsallno
    node.js< 8.x>= 6.3 (Windows: >= 6.9)
    Electronallnot yet
    Chakraallnot yet

    通俗來說,舊版 Node (< 6.3) 推薦使用 Legacy Protocol (--debug模式,默認(rèn) 5858 端口),而新版的 Node (>= 6.3) 推薦使用 Inspector Protocol (--inspect模式,默認(rèn) 9229 端口)。

    需要注意的是,在啟動(dòng) nodemon 程序時(shí),也要添加對(duì)應(yīng)的參數(shù),比如:

    nodemon --debug server/app.js nodemon --inspect server/app.js

    詳細(xì)的例子同樣可以在 zry656565/vscode-debug-sample 中找到。

    參考資料

    • VS Code - Debugger for Chrome - README

    • Debugging in VS Code

    • Chrome DevTools Protocol Viewer

    • bdspen/nodemon_vscode

    • Node.js Debugging in VS Code

    總結(jié)

    以上是生活随笔為你收集整理的Visual Studio Code 前端调试不完全指南的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美一级在线观看 | 小宵虎南在线观看 | 人妻无码一区二区三区四区 | 午夜精品久久久久久久久久 | 亚洲精品久久久久久无码色欲四季 | 无码粉嫩虎白一线天在线观看 | 狠狠ri| 嫩草视频入口 | 69视频一区二区三区 | 三级五月天 | 激情高潮呻吟抽搐喷水 | 91超碰在线观看 | 婷婷四房综合激情五月 | 在线观看高清av | 一区二区三区在线视频免费观看 | 波多野结衣视频一区二区 | 捆绑无遮挡打光屁股 | 久久久久久亚洲中文字幕无码 | 亚洲精品无码久久久久 | 九九久久国产 | 新版红楼梦在线高清免费观看 | 日韩不卡一区二区三区 | www.成人网.com| 国内一级黄色片 | 国产成人一区在线观看 | 91精品国产综合久久香蕉922 | 永久av免费| 国产精品久久久久久久久免费桃花 | 成人av在线资源 | 国产精品久久久久9999爆乳 | 日韩精品福利视频 | 九九热国产在线 | 两性午夜免费视频 | 国产真实生活伦对白 | 成年人免费网站在线观看 | 欧美劲爆第一页 | 日韩电影中文字幕 | 黄色片91 | 日本不卡视频在线观看 | 午夜精品视频一区二区三区在线看 | 一级做a爰片毛片 | 中文字幕综合 | 欧美成人一区二区视频 | 涩涩97| 日本一本高清视频 | 免费在线观看成人 | 日韩一区在线视频 | 欧美黄色大片在线观看 | 韩日午夜在线资源一区二区 | 黑人一级大毛片 | 男女视频在线 | 日本在线观看a | 日韩经典av| 蜜桃视频免费网站 | 国产乱国产乱300精品 | а√天堂资源官网在线资源 | 不卡一区二区在线观看 | 黄色激情网址 | 亚洲精品久久久乳夜夜欧美 | 精品播放 | 国产精品xxx在线观看 | 麻豆视频观看 | 艳情五月 | 欧美福利一区二区三区 | 已满18岁免费观看电视连续剧 | 日本乱轮视频 | 日本天天操 | 女生扒开尿口给男生捅 | 波多野结衣50连登视频 | 日韩乱码人妻无码中文字幕久久 | 国产 福利 在线 | 亚洲三级网| 日韩18p | 国产亚洲天堂网 | 夜夜骑狠狠干 | 粉嫩久久99精品久久久久久夜 | 色骚综合| 欧美三级一区二区三区 | 欧美三级一级片 | 樱花电影最新免费观看国语版 | 国产寡妇亲子伦一区二区三区四区 | 四虎一区二区 | jzzijzzij亚洲成熟少妇在线播放 狠狠躁日日躁夜夜躁2022麻豆 | 污网站在线看 | 国产a毛片 | 精品国产乱码久久久久久婷婷 | 992tv人人草 国产第6页 | 男生插女生视频在线观看 | 美女黄色片网站 | 老熟妇一区二区三区啪啪 | 少妇被中出 | 亚洲男女视频在线观看 | 亚洲自拍第二页 | 四色最新网址 | 91porn九色| 亚洲一区在线播放 | 成人午夜视频在线播放 | 午夜88 | 成人在线观看你懂的 |