webpack-dev-server啟動後,localhost:8080返回index.html的原理
webpack-dev-server是一個採用Node.js Express實現的微型伺服器, 內部使用webpack-dev-middleware來響應傳送到伺服器監聽單口的HTTP請求。
webpack-dev-server主要用於前端專案的本地開發和除錯。
具體使用,只需要在package.json的devDependencies裡新增它的依賴即可。
同樣在package.json裡定義dev script,執行該webpack-dev-server, 這樣用命令列npm run dev就可啟動webpack-dev-server.
其原理是,npm install後,webpack-dev-server.js就會自動出現在當前專案資料夾的node_modules目錄裡:
Webpack-dev-server.js的伺服器例項通過關鍵字new建立出來:
在Server.js的內部實現裡,第76行我們就能觀察到該伺服器採用nodejs的express模組實現。
Express例項建立後,通過第78行app.all('*', ... )掛接處理函式,這個箭頭函式(req,res,next) => { 負責處理所有發往這個伺服器的HTTP請求。
第92行就是Server.js裡webpackDevMiddleware的初始化過程。
現在我們就來看看瀏覽器裡輸入localhost:8080後會發生什麼事情。
根據前面的描述,瀏覽器發起前往localhost:8080的請求被webpackDevMiddleware服務,見下圖除錯截圖,其中變數req.url為/,這是我們期望看到的,因為localhost:8080後面沒有跟任何路徑。
最終會將執行流投遞到processRequest函式裡,第53行程式碼說明,如果HTTP請求路徑/後沒有子路徑,則預設返回一個硬編碼的index.html
謎團就這樣解開了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2217005/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 隱藏alert彈框中的localhost:8080(ip地址跟埠號)localhost
- CentOS7中啟動Tomcat後,8080埠不能被外部訪問的解決辦法。CentOSTomcat
- 重簽名後的 wda 正常啟動了,但是沒有返回 sessionIDSession
- Several ports (8005, 8080) required by Tomcatv9.0 Server at localhost are already in use.Tomcat解決方案UITomcatServerlocalhost
- 帝國cms返回首頁帶.index.html的解決辦法IndexHTML
- http-server快速啟動localhost與iPhone X相容HTTPServerlocalhostiPhone
- SpringBoot 啟動類的原理Spring Boot
- 啟動報錯:Access denied for user 'root'@'localhost' (using password:YES)localhost
- java本地連線遠端Hbase可是返回zookeeper的地址是localhostJavalocalhost
- 解決不能ip:8080開啟專案
- linux下修改防火牆,開啟8080埠Linux防火牆
- SpringBoot啟動原理Spring Boot
- SpringBoot 啟動原理Spring Boot
- springBoot-啟動原理Spring Boot
- SSM+Swagger問題解決 Can‘t read swagger JSON from http://localhost:8080/xxx/swagger/api-docsSSMSwaggerJSONHTTPlocalhostAPI
- 程式啟動原理和UIApplicationUIAPP
- Spring容器系列-啟動原理Spring
- 執行緒啟動原理執行緒
- Activity側滑返回的實現原理
- Webpack-dev-server結合後端伺服器的熱替換配置WebdevServer後端伺服器
- 【爬坑日記】npm build之後,開啟dist資料夾下index.html為空白頁NPMUIIndexHTML
- The connection to the server localhost:8080 was refused在WSL/WSL2環境下使用DockerDesktop的kubectl無法連線叢集(缺少config的解決ServerlocalhostDocker
- 淘淘商城問題-啟動maven專案,沒有出現Starting ProtocolHandler ["http-bio-8080"]MavenProtocolHTTP
- TensorBoard啟動後No dashboards ...的問題ORB
- springboot自動配置原理和啟動流程Spring Boot
- ABAP Development Tool前後臺互動的原理dev
- springboot之啟動原理解析Spring Boot
- SpringBoot啟動流程分析原理(一)Spring Boot
- 埠衝突,可愛的8080
- SAP UI5 應用 index.html 裡引導 script 屬性的解析原理UIIndexHTML
- 殺死8080埠
- 前端接收後端返回的map前端後端
- win10快速啟動有什麼作用_win10快速啟動的原理Win10
- 【SpringBoot】服務 Jar 包的啟動過程原理Spring BootJAR
- MySQL使用普通使用者訪問返回ERROR 1698 (28000): Access denied for user 'root'@'localhost'MySqlErrorlocalhost
- nacos原理三-註冊中心原理&原始碼啟動.md原始碼
- webpack-dev-server的安裝與使用WebdevServer
- 不要相信requests編碼後返回的text