溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

webpack-dev-server啟動后,localhost:8080返回index.html的原理

發(fā)布時間:2020-08-11 22:59:06 來源:ITPUB博客 閱讀:216 作者:i042416 欄目:web開發(fā)

webpack-dev-server是一個采用Node.js Express實現(xiàn)的微型服務器, 內(nèi)部使用webpack-dev-middleware來響應發(fā)送到服務器監(jiān)聽單口的HTTP請求。

webpack-dev-server主要用于前端項目的本地開發(fā)和調(diào)試。

具體使用,只需要在package.json的devDependencies里添加它的依賴即可。

webpack-dev-server啟動后,localhost:8080返回index.html的原理

同樣在package.json里定義dev script,執(zhí)行該webpack-dev-server, 這樣用命令行npm run dev就可啟動webpack-dev-server.

webpack-dev-server啟動后,localhost:8080返回index.html的原理

其原理是,npm install后,webpack-dev-server.js就會自動出現(xiàn)在當前項目文件夾的node_modules目錄里:

webpack-dev-server啟動后,localhost:8080返回index.html的原理

Webpack-dev-server.js的服務器實例通過關(guān)鍵字new創(chuàng)建出來:

webpack-dev-server啟動后,localhost:8080返回index.html的原理

在Server.js的內(nèi)部實現(xiàn)里,第76行我們就能觀察到該服務器采用nodejs的express模塊實現(xiàn)。

Express實例創(chuàng)建后,通過第78行app.all('*', ... )掛接處理函數(shù),這個箭頭函數(shù)(req,res,next) => { 負責處理所有發(fā)往這個服務器的HTTP請求。

webpack-dev-server啟動后,localhost:8080返回index.html的原理

第92行就是Server.js里webpackDevMiddleware的初始化過程。

webpack-dev-server啟動后,localhost:8080返回index.html的原理

現(xiàn)在我們就來看看瀏覽器里輸入localhost:8080后會發(fā)生什么事情。

webpack-dev-server啟動后,localhost:8080返回index.html的原理

根據(jù)前面的描述,瀏覽器發(fā)起前往localhost:8080的請求被webpackDevMiddleware服務,見下圖調(diào)試截圖,其中變量req.url為/,這是我們期望看到的,因為localhost:8080后面沒有跟任何路徑。

最終會將執(zhí)行流投遞到processRequest函數(shù)里,第53行代碼說明,如果HTTP請求路徑/后沒有子路徑,則默認返回一個硬編碼的index.html

webpack-dev-server啟動后,localhost:8080返回index.html的原理

謎團就這樣解開了。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI