Webpack實戰(二):webpack-dev-server的介紹與用法


為什么要用webpack-dev-server

在開發中,我們都可以發現僅僅使用Webpack以及它的命令行工具來進行開發調試的效率並不高,每次編寫好代碼之后,我們需要執行npm run build命令更新js文件,然后再刷新頁面,才能看到更新效果。webpack-dev-server正好解決了這個問題,是一款便捷的本地開發工具。

webpack-dev-server 安裝及配置

用以下命令進行安裝:

npm install webpack-dev-server --save-dev

--save-dev:將webpack-dev-server保存配置信息到pacjage.json的devDependencies(開發環境依賴)節點中。這樣做是因為webpack-dev-server僅僅在本地開發時才會用到,在生產環境中並不需要它 。項目上線的時候,要進行依賴安裝,就可以通過npm install--production過濾掉devDependencies中的冗余模塊,從而加快安裝和發布的速度。

為了便捷地啟動webpack-dev-server,我們在package.json中添加一個dev指令:

"scripts": {
    "build": "webpack",
    "dev": "webpack-dev-server --open"  //open是自動執行后打開頁面
  }

最后,對webpack.config.js添加一個devServer對象,它是專門用來放webpack-dev-server配置的,webpack-dev-server可以看作一個服務者,它的主要工作就是接收瀏覽器的請求,然后將資源返回。當服務啟動時,會先讓Webpack進行模塊打包並將資源准備好(在示例中就是bundle.js)。當webpack-dev-server接收到瀏覽器的資源請求時,它會首先進行URL地址校驗。如果該地址是資源服務地址(上面配置的publicPath),就會從Webpack的打包結果中尋找該資源並返回給瀏覽器。反之,如果請求地址不屬於資源服務地址,則直接讀取硬盤中的源文件並將其返回

"devServer": {
    "publicPath": './dist',
    "port": 3000
  }

這里有一點需要注意。直接用Webpack開發和使用webpack-dev-server有一個很大的區別,前者每次都會生成budnle.js,而webpack-dev-server只是將打包結果放在內存中,並不會寫入實際的bundle.js,在每次webpack-dev-server接收到請求時都只是將內存中的打包結果返回給瀏覽器。

webpack-dev-server還有一項很便捷的特性就是live-reloading(自動刷新)。當我們修改了內容之后,切換到瀏覽器你會發現,瀏覽器內容也變化了。

webpack-dev-server特點:

  • 令Webpack進行模塊打包,並處理打包結果的資源請求
  • 作為普通的Web Server,處理靜態資源文件請求
  • 解決了來回npm run build,再更新代碼的問題,比較便捷
  • 可以設置port端口和open(自動打開頁面),其他更多配置可以參考官網api:https://webpack.js.org/configuration/dev-server/
  • 自動刷新:瀏覽器自動更改后的內容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM