一文大白話講清楚webpack進階——5——dev-server原理及其作用

文章目錄

  • 一文大白話講清楚webpack進階——5——dev-server原理及其作用
  • 1. webpack的作用
  • 2. dev-server的作用
  • 3. dev-server的原理
    • 3.1 啥是webpack-dev-middleware
    • 3.2 HMR

一文大白話講清楚webpack進階——5——dev-server原理及其作用

1. webpack的作用

  • webpack的作用我們之前見過了,不懂的可以看起系列文章
  • 一文大白話講清楚webpack基本使用——1——完成webpack的初步構建一直到一文大白話講清楚webpack基本使用——18——HappyPack
  • 一言概之,webpack就是把我們項目中的各個模塊(js Module,css等都視為模塊)進行打包
  • 那具體怎么打包的呢
  • 通過AST

2. dev-server的作用

  • 開開發階段,我們想要預覽頁面效果,就需要啟動一個一個服務器伺服編譯出來的靜態資源,幫助我們實現自動打包,自動刷新等,提高開發效率,webpack-dev-server就是干這個的活

3. dev-server的原理

  • webpack-dev-server基于express框架構建了一個HTTP服務,通過webpack-dev-middleware和memory-fs模塊將打包資源輸出到內存中去,當瀏覽器請求文件吃,webpack-dec-server會監視這些請求,并將他們路由到內存中的虛擬文件系統中對應的文件,這樣就可以直接從內存中提供文件,而不需要訪問實際的物理文件。

3.1 啥是webpack-dev-middleware

  • webpack-dev-middleware是一個wrapper,理解為容器,他會將webpack編譯后的文件存儲到內存中去,然后用戶在訪問express服務器時,將內存中對應的資源輸出返回。
  • 可以把它看成是一個內存型的文件系統,目錄與內存中的產物會形成映射關系
  • 當我們訪問express時,express會將請求轉發給webpack-dev-middleware,webpack-dev-middleware會根據映射關系,找到對應的文件,再講文件內容返回給express

3.2 HMR

  • 為我們提供無須刷新就可以實施看到頁面效果的動態服務,本質是websocket通信
  • 看我這篇文章
  • 一文大白話講清楚webpack基本使用——6——熱更新及其原理

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67303.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67303.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67303.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【第十天】零基礎入門刷題Python-算法篇-數據結構與算法的介紹-兩種常見的字符串算法(持續更新)

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、Python數據結構與算法的詳細介紹1.Python中的常用的字符串算法2.字符串算法3.詳細的字符串算法1)KMP算法2)Rabin-Karp算法 總結 前言…

Writing an Efficient Vulkan Renderer

本文出自GPU Zen 2。 Vulkan 是一個新的顯式跨平臺圖形 API。它引入了許多新概念,即使是經驗豐富的圖形程序員也可能不熟悉。Vulkan 的主要目標是性能——然而,獲得良好的性能需要深入了解這些概念及其高效應用方法,以及特定驅動程序實現的實…

使用QSqlQueryModel創建交替背景色的表格模型

class UserModel(QSqlQueryModel):def __init__(self):super().__init__()self._query "SELECT name, age FROM users"self.refresh()def refresh(self):self.setQuery(self._query)# 重新定義data()方法def data(self, index, role): if role Qt.BackgroundRole…

Java數據庫操作指南:快速上手JDBC【學術會議-2025年數字化教育與信息技術(DEIT 2025】

大會官網:www.ic-deit.org 前言 在現代企業應用中,數據庫是數據存儲和管理的重要組成部分。Java作為一種廣泛使用的編程語言,提供了多種方式與數據庫進行交互。本文將介紹 JDBC(Java Database Connectivity)&#x…

神經網絡的通俗介紹

人工神經網絡,是一種模仿人類大腦工作原理的數學模型。人類的大腦是由無數的小“工作站”組成的,每個工作站叫做“神經元”。這些神經元通過“電線”互相連接,負責接收、處理和傳遞信息。 一、人類大腦神經網絡 人類大腦的神經網絡大概長這…

FLTK - FLTK1.4.1 - demo - animgifimage-play

文章目錄 FLTK - FLTK1.4.1 - demo - animgifimage-play概述筆記END FLTK - FLTK1.4.1 - demo - animgifimage-play 概述 看的官方demo越多,在每個新demo中能看到的新增知識點越少。這是好事。 不可能一次將細節都記住,只要知道每個官方demo能干啥&…

OpenEuler學習筆記(八):安裝OpenEuler

在VMware Workstation中安裝OpenEuler 準備工作 下載并安裝VMware Workstation虛擬機軟件。前往OpenEuler官網下載OpenEuler系統鏡像文件。 創建虛擬機 打開VMware Workstation,點擊“創建新的虛擬機”,選擇“自定義”,點擊“下一步”。選擇…

Rust:高性能與安全并行的編程語言

引言 在現代編程世界里,開發者面臨的最大挑戰之一就是如何平衡性能與安全性。在許多情況下,C/C這樣的系統級編程語言雖然性能強大,但其內存管理的復雜性導致了各種安全漏洞。為了解決這些問題,Rust 作為一種新的系統級編程語言進入…

Leetcode::119. 楊輝三角 II

119. 楊輝三角 II 已解答 簡單 相關標簽 相關企業 給定一個非負索引 rowIndex,返回「楊輝三角」的第 rowIndex 行。 在「楊輝三角」中,每個數是它左上方和右上方的數的和。 示例 1: 輸入: rowIndex 3 輸出: [1,3,3,1]示例 2: 輸入: rowIndex 0…

讓Android adb支持互聯網調試脫離局域網

某些特殊場景下由于不方便,手機不在身邊,但需要進行adb調試。 首先可以先開啟adb的無線調試模式,我使用的是第二種方式。 在Android手機上安裝一個終端模擬器,并賦予root權限,隨后執行: setprop service.…

PHP中的獲取器和修改器:探索數據訪問的新維度

在PHP開發中,操作數據是開發人員最常見的任務之一。為了使數據的訪問和修改更加便捷和安全,PHP提供了獲取器和修改器這兩個強大的特性。本文將探索獲取器和修改器的作用和用法,并且通過具體的代碼示例來幫助讀者更好地理解和應用這兩個特性。…

Dest1ny漏洞庫:用友 U8-CRM 系統 ajaxgetborrowdata.php 存在 SQL 注入漏洞

用友U8-CRM系統ajaxgetborrowdata.php存在SQL注入漏洞,文件多個方法存在SQL注入漏洞,未經身份驗證的攻擊者通過漏洞執行任意SQL語句,調用xp_cmdshell寫入后門文件,執行任意代碼,從而獲取到服務器權限。 hunter app.n…

能說說MyBatis的工作原理嗎?

大家好,我是鋒哥。今天分享關于【Redis為什么這么快?】面試題。希望對大家有幫助; 能說說MyBatis的工作原理嗎? MyBatis 是一款流行的持久層框架,它通過簡化數據庫操作,幫助開發者更高效地與數據庫進行交互。MyBatis…

DeepSeek崛起:中國AI新星如何撼動全球資本市場格局

引言 近期,中國人工智能實驗室DeepSeek發布的兩款開源模型——DeepSeek V3和DeepSeek R1——以其優異的性能和低廉的成本迅速爆火,引發了全球資本市場的震動,尤其對美國資本市場產生了顯著影響。DeepSeek R1更是能夠在數學、代碼和推理任務上…

0.91英寸OLED顯示屏一種具有小尺寸、高分辨率、低功耗特性的顯示器件

0.91英寸OLED顯示屏是一種具有小尺寸、高分辨率、低功耗特性的顯示器件。以下是對0.91英寸OLED顯示屏的詳細介紹: 一、基本參數 尺寸:0.91英寸分辨率:通常為128x32像素,意味著顯示屏上有128列和32行的像素點,總共409…

將5分鐘安裝Thingsboard 腳本升級到 3.9

稍微花了一點時間,將5分鐘安裝Thingsboard 腳本升級到最新版本 3.9。 [rootlab5 work]# cat one-thingsboard.shell echo "test on RHEL 8.10 " source /work/java/install-java.shell source /work/thingsboard/thingsboard-rpm.shell source /work/po…

使用Python Dotenv庫管理環境變量

使用Python Dotenv庫管理環境變量 在開發Python應用程序時,管理配置信息(如API密鑰、數據庫連接字符串等)是一個常見的需求。為了確保安全性和靈活性,通常不建議將這些敏感信息硬編碼在代碼中。這時,dotenv庫就派上了…

算法刷題Day30

題目鏈接 描述 解題思路 考點:動態規劃 dp[i][j]表示當前坐標的最小路徑和dp初始化狀態轉移: dp[i][j] matrix[i][j] min(dp[i-1][j],dp[i][j-1]) 比較正上方和正左方的路徑和哪個小。取小的那條路 代碼 import copy class Solution:def minPathS…

大數據Hadoop入門2

目錄 第三部分(Hadoop MapReduce和Hadoop YARN) 1.課程內容-大綱-學習目標 2.理解先分再合、分而治之的思想 3.hadoop團隊針對MapReduce的設計構思 4.Hadoop MapReduce介紹、階級劃分和進程組成 5.Hadoop MapReduce官方示例-圓周率PI評估 6.Hadoo…

基于ESP8266的多功能環境監測與反饋系統開發指南

項目概述 本系統集成了物聯網開發板、高精度時鐘模塊、環境傳感器和可視化顯示模塊,構建了一個智能環境監測與反饋裝置。通過ESP8266 NodeMCU作為核心控制器,結合DS3231實時時鐘、DHT11溫濕度傳感器、光敏電阻和OLED顯示屏,實現了環境參數的…