1. 程式人生 > >桃子叔叔為您解析webpack-dev-server主要的配置屬性

桃子叔叔為您解析webpack-dev-server主要的配置屬性

這裡寫圖片描述

webpack-dev-server 配置屬性

眾所周知webpack-dev-server有三種配置方式,有配置檔案方式、package.json方式和純node的API實現方式,桃子叔叔推薦使用的是第一種:webpack.config.js輸出物件中的devServer屬性中寫配置。其中的原因也是很簡單,這種方式最有利於大型前端專案的部署和後期維護,為什麼呢?balabalabala~~~~~~,桃子叔叔很任性的告訴你這麼簡單的問題就不多廢話了。

這篇部落格主要介紹 webpack-dev-server常用的配置屬性,幾乎涵蓋了所有我們專案中能使用到的,如果小盆友們想檢視所有的屬性,點選這裡:

webpack-dev-server官方文件 ,本篇部落格所有英文的引用部分均來自官方文件。

首先看一下devServer的一個專案中使用的實際例子:

devServer: {
    contentBase: "./",//本地伺服器所載入的頁面所在的目錄
    historyApiFallback: true,//不跳轉
    host:'0.0.0.0',
    port:7000,
    hot:true,
    inline: true,//實時重新整理
    hot:true,//Enable webpack's Hot Module Replacement feature
    compress
:true,//Enable gzip compression for everything served overlay: true, //Shows a full-screen overlay in the browser stats: "errors-only" ,//To show only errors in your bundle open:true, //When open is enabled, the dev server will open the browser. proxy: { "/api": { target: "http://localhost:3000"
, pathRewrite: {"^/api" : ""} } },//重定向 }

接下來我們根據上面的實際例子逐條解析,balabalabala~~~開始了:

1、contentBase

Tell the server where to serve content from. This is only necessary if you want to serve static files. devServer.publicPath will be used to determine where the bundles should be served from, and takes precedence.

用於告訴伺服器檔案的根目錄。這主要用來需要引用靜態檔案的時候。devServer.publicPath被用來規定變異檔案的路徑地址,在下面將詳細介紹

By default it will use your current working directory to serve content, but you can modify this to another directory:

預設情況下就是當前工作的資料夾地址,但是可以修改為其他的地址

contentBase: path.join(__dirname, "public")

2、historyApiFallback

When using the HTML5 History API, the index.html page will likely have to be served in place of any 404 responses. Enable this by passing:

這個配置屬性是用來應對返回404頁面時定向到特定頁面用的

By passing an object this behavior can be controlled further using options like rewrites:

語法是向historyApiFallback物件中的rewrites屬性傳一個物件格式,如下:

historyApiFallback:{
   rewrites:[
      {from:/./,to:'/404.html'}
   ]
  }

3、host

Specify a host to use. By default this is localhost. If you want your server to be accessible externally, specify it like this:

設定伺服器的主機號,預設是localhost,但是可以自己進行設定,如:

host: "0.0.0.0"

此時,localhost:7000和0.0.0.0:7000都能訪問成功
這裡寫圖片描述

4、port

Specify a port number to listen for requests on:

設定埠號,如下面的7000

devServer: {
   port:7000
}

5、hot 和 inline

自動重新整理和模組熱替換機制

5.1 hot

Enable webpack’s Hot Module Replacement feature:

熱模組替換機制

hot: true

Note that webpack.HotModuleReplacementPlugin is required to fully enable HMR. If webpack or webpack-dev-server are launched with the –hot option, this plugin will be added automatically, so you may not need to add this to your webpack.config.js.

注意,如果你的專案中使用了熱模組替換機制,HotModuleReplacementPlugin外掛會自動新增到專案中,而不需要再在配置檔案中做新增。

5.2 inline

Toggle between the dev-server’s two different modes. By default the application will be served with inline mode enabled. This means that a script will be inserted in your bundle to take care of live reloading, and build messages will appear in the browser console.

webpack-dev-server有兩種模式可以實現自動重新整理和模組熱替換機制
1. Iframe mode(預設,無需配置)
頁面被嵌入在一個iframe裡面,並且在模組變化的時候過載頁面
2.inline mode(需配置)新增到bundle.js中
當重新整理頁面的時候,一個小型的客戶端被新增到webpack.config.js的入口檔案中

6、compress

這是一個布林型的值,當它被設定為true的時候對所有的伺服器資源採用gzip壓縮
採用gzip壓縮的優點和缺點:

  • 優點:對JS,CSS資源的壓縮率很高,可以極大得提高檔案傳輸的速率,從而提升web效能
  • 缺點:服務端要對檔案進行壓縮,而客戶端要進行解壓,增加了兩邊的負載

7、overlay

Shows a full-screen overlay in the browser when there are compiler errors or warnings. Disabled by default. If you want to show only compiler errors:

用於在瀏覽器輸出編譯錯誤的,預設是關閉的,需要手動開啟:

overlay: true

如果你想江warnings一同打印出來,可設定:

overlay: {
  warnings: true,
  errors: true
}

8、stats

This option lets you precisely control what bundle information gets displayed. This can be a nice middle ground if you want some bundle information, but not all of it.

這個配置屬性用來控制編譯的時候shell上的輸出內容,因為我們並不需要所有的內容,而只是需要部分的如errors等

To show only errors in your bundle:

在shell中只輸出errors:

stats: "errors-only"

9、open

When open is enabled, the dev server will open the browser.

當open選項被設定為true時,dev server將直接開啟瀏覽器

10、proxy

Proxying some URLs can be useful when you have a separate API backend development server and you want to send API requests on the same domain.

重定向是解決跨域的好辦法,當後端的介面擁有獨立的API,而前端想在同一個domain下訪問介面的時候,可以通過設定proxy實現。

如果後端介面地址是10.10.10.10:3000,你可以這樣設定:

proxy: {
  "/api": "http://10.10.10.10:3000"
}

一個 “/api/users”地址的請求將被重定向到”http://10.10.10.10:3000/api/users“,如果不希望”api”在傳遞中被傳遞過去,可以使用rewrite的方式實現:

proxy: {
  "/api": {
    target: "http://localhost:3000",
    pathRewrite: {"^/api" : ""}
  }
}

11、publicPath

The bundled files will be available in the browser under this path.
Imagine that the server is running under http://localhost:8080 and output.filename is set to bundle.js. By default the publicPath is “/”, so your bundle is available as http://localhost:8080/bundle.js.

用於設定編譯後文件的路徑,假設伺服器的執行地址是 http://localhost:8080,輸出檔名設定為bundle.js,那麼預設情況下publicPath是”/”,因此檔案地址為http://localhost:8080/bundle.js 如果想要設定為別的路徑可以這樣:

publicPath: "/assets/"

Make sure publicPath always starts and ends with a forward slash.

確保publicPath的書寫規則:前後都有一個斜槓!
這裡寫圖片描述

相關推薦

桃子叔叔解析webpack-dev-server主要配置屬性

webpack-dev-server 配置屬性 眾所周知webpack-dev-server有三種配置方式,有配置檔案方式、package.json方式和純node的API實現方式,桃子叔叔推薦使用的是第一種:webpack.config.js輸出物件中的

webpack-dev-server啟動失敗

target href -s 失敗 http ima pack pac html 學習webpack-dev-server過程中,項目路徑下執行webpack-dev-server,老是報錯,原來是配置項在colors在webpack2.0以上版本不需要進行配置了,

webpack基礎+webpack配置文件常用配置項介紹+webpack-dev-server

建議 每次 alt fig out 添加 pre 補充 字符串 一.webpack基礎   1.在項目中生成package.json:在項目根目錄中輸入npm init,根據提示輸入相應信息。(也可以不生成package.json文件,但是package.json是很有用的

webpack-dev-server開發時代理,決解開發時跨域問題

端口 dex lba save progress 重要 less span npm 一、設置代理的原因 現在對前端開發的要求越來越高,並且隨著自動化以及模塊化的 誕生,前後端開發模式越來越流行。後端只負責接口,前端負責數據展示、邏輯處理。但是前後端開發模式,有一個重要的問題

webpack-dev-server 無法通過ip訪問

color -s onf gre ogr uil class 生成 pts 使用Vue-cli生成的webpack腳手架,之前一直是可以通過本地ip + 端口來訪問的。今天忽然不可以,百度一下才知道缺少了host參數。 打開package.json。在.scripts.de

'webpack-dev-server' 不是內部或外部命令,也不是可運行的程序

解決 dev bsp blog log 再次 裝包 全局 pac 今天新初始的項目遇到這個問題,記錄如下: 1. 這個錯誤與全局安裝webpack-dev-server無關,不必進行全局安裝 2. 原因可能是:   npm或yarn安裝包(當前項目),安裝中報錯,例如nod

[轉] webpack3最新版本配置研究(五) devtool,webpack-dev-server,CommonsChunkPlugin

war () 最新版本 獲取 報錯 key num clas 容易 devtool devtool是webpack中config自帶的屬性只要使用就可以了不用安裝 webpack官網的解釋如下 當 webpack 打包源代碼時,可能會很難追蹤到錯誤和警告在源代碼中的原始位

webpack-dev-server配置指南webpack3.0

tput image led 替換 conf 朋友 div bundle 不知道 最近正在研究webpack,聽說webpack可以自己搭建一個小型的服務器(使用過vue-cli的朋友應該都見識到過),所以迫不及待的想要嘗試一下。不過,在實際操作中發現,用webpack搭建

開源高效的直播源碼,解析直播系統功能

直播程序研發 隨著直播行業的迅猛發展,直播平臺如同雨後春筍般生長起來。做的人多了,自然就會有人有疑問,直播系統怎麽開發呢?小編來帶您深入了解直播平臺,並為您解答! 現在使用最多的直播平臺算是手機直播APP了!那麽直播系統怎麽開發?我們先來看下APP的功能。1.視頻直播功能,這是一款直播App最主要的功能

Vue 項目: npm run dev b報錯 “'webpack-dev-server' 不是內部或外部命令,也不是可運行的程序 或批處理文件。”

output 安裝 modules RR module -i progress his dev 前提: 電腦已經安裝了nodeJS和npm, 項目是直接下載的zip包。 報錯步驟為1:cd /d 目錄; 2. npm ren dev -------> 報錯如下:

Vue項目碰到"‘webpack-dev-server’不是內部或外部命令,也不是可運行的程序或批處理文件"報錯

node fill sta 新建 sso 用戶權限 環境 fonts IT 最近公司裏做vue項目,svn了前端同事的項目代碼,裝好環境,運行項目(安裝步驟隨便百度一下,很詳細),控制臺裏報錯“‘webpack-dev-server’不是內部或外部命令,也不是可運行的程序或

webpack-dev-server 小記 原理介紹 概念解讀

style 事情 可能 asc 監聽文件 地址 dev ces 內容 使用 DevServer 提供 HTTP 服務而不是使用本地文件預覽 監聽文件的變化並自動刷新網頁,做到實時預覽 支持 Source Map,以方便調試   對於這些,Webpack 都為我們考慮好了。W

webpackwebpack-dev-server的使用

config bubuko ima 百度一 進入 自動打開 pda 監聽 電腦 本文的目的是要體驗下使用webpack服務器的熱更新和構建完成自動彈出瀏覽器的酷炫效果。 1、webpack及webpack-dev-server的安裝 全局安裝webpack,使用命令npm

關於webpack-dev-server不能及時更新的問題

tput output style 關於 腳本 class 不能 更新 瀏覽器 問題描述: 配置好了webpack-dev-server之後,修改文件,發現它可以重新編譯,但是瀏覽器頁面並沒有自動更新。 比如我在腳本裏新添了一句alert(1234), 雖然webpack-

vue中"‘webpack-dev-server’不是內部或外部命令,也不是可運行的程序"的報錯

ext watermark 描述 https 文件 程序 pac 解決辦法 ins 在vue項目中發現了這個報錯 解決辦法將項目裏的“node_modules”文件夾刪除,然後重新運行cnpm installvue中"‘webpack-d

webpack4 系列教程(十五):開發模式與webpack-dev-server

作者按:因為教程所示圖片使用的是 github 倉庫圖片,網速過慢的朋友請移步《webpack4 系列教程(十五):開發模式與 webpack-dev-server》原文地址。更歡迎來我的小站看更多原創內容:godbmw.com,進行“姿勢”交流 ♪(^∇^*) 0. 課程介紹和資料 &g

webpack 4.x 解決 webpack-dev-server工具在webpack構建的專案中使用問題

首先將webpack-dev-server安裝到專案中 npm install webpack-dev-server -D 這時在powershell中敲 webpack-dev-server 會發現 'webpack-dev-server' 不是內部或外部命令,也不是可執行的程式 或批

webpack 4.x 解決 webpack-dev-server工具在webpack構建的項目中使用問題

運行 shel pts class col png 技術 style 發現 首先將webpack-dev-server安裝到項目中 npm install webpack-dev-server -D 這時在powershell中敲 webpack-dev-server

webpack-dev-server.js:405 throw e;

一開始裝webpack建議先裝低一點版本,所以npm i -D [email protected] 裝了個3.12版本的,然後裝了webpack-dev-server 配置如下: { "name": "WebPack", "version": "1.0.0", "descr

webpack-dev-server實現專案熱部署

文章目錄 webpack-dev-server webpack-dev-server作用 新增webpack-dev-server 修改原始碼 執行結果 webpack-dev-server webp