<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
devServer
是為開發過程中, 開啟的一個本地服務,在此總結一些常用的設定。供大家學習,相互成長,相互進步!
devServer
中contentBase
對於我們直接存取打包後的資源其實並沒有太大的作用,但如果我們打包後的資源,又依賴於其他的一些資源,那麼就需要指定從哪裡來查詢這個內容,這時候就需要設定contentBase
舉例:
module.exports = { mode: "development", entry: "./src/index.js", output: { filename: "bundle.js", // 打包後的檔案的輸出目錄 path: path.resolve(__dirname, "./build"), publicPath: "/abc", }, // 專門為webpack-dev-server // devServer為開發過程中, 開啟一個本地服務 devServer: { publicPath: "/abc", } }
如上方圖所示設定"./why/abc.js"
,但是這樣webpack serve
打包後瀏覽器是無法通過相對路徑去找到這個資料夾的
所以應設定為如下:
module.exports = { mode: "development", entry: "./src/index.js", output: { filename: "bundle.js", // 打包後的檔案的輸出目錄 path: path.resolve(__dirname, "./build"), publicPath: "/abc", }, // 專門為webpack-dev-server // devServer為開發過程中, 開啟一個本地服務 devServer: { ** contentBase: path.resolve(__dirname, "./why"), ** watchContentBase: true, //實時監聽contentBase檔案變化 publicPath: "/abc", } }
hot 啟用 webpack 的 熱模組替換 特性:
module.exports = { //... devServer: { hot: true, }, };
啟用熱模組替換功能,在構建失敗時不重新整理頁面作為回退,使用 hot: 'only' 或hotOnly:true
:
module.exports = { //... devServer: { hot: 'only', //hotOnly: true, }, };
預設值是localhost; 如果希望其他地方也可以存取,可以設定為 0.0.0.0;
提示: localhost 和 0.0.0.0 的區別:
localhost:
本質上是一個域名,通常情況下會被解析成127.0.0.1;
127.0.0.1:
迴環地址(Loop Back Address),表達的意思其實是我們主機自己發出去的包,直接被自己接收;
0.0.0.0:
監聽IPV4上所有的地址,再根據埠找到不同的應用程式;
port:
設定監聽的埠,預設情況下是8080,不能設定為null
,可以設定自動為auto
module.exports = { //... devServer: { port: 8080, }, };
open:
告訴 dev-server 在伺服器已經啟動後開啟瀏覽器。設定其為 true
以開啟你的預設瀏覽器。
module.exports = { //... devServer: { open: true, //在瀏覽器中開啟指定頁面:open: ['/my-page'] //提供要使用的瀏覽器名稱,而不是預設名稱 // open: { // app: { // name: 'google-chrome', // }, // }, }, };
compress:
是否為靜態檔案開啟gzip compression:
module.exports = { //... devServer: { compress: true, }, };
Proxy
是我們開發中非常常用的一個設定選項,它的目的設定代理來解決跨域存取的問題。
舉例:
我們的一個api
請求是 http://localhost:8888,但是本地啟動伺服器的域名是 http://localhost:8000, 這個時候傳送網路請求就會出現跨域的問題。 所以將請求先傳送到一個代理伺服器,代理伺服器和API伺服器沒有跨域的問題,就可以解決我們的跨域問題了。
module.exports = { //... devServer: { proxy: { '/api': { target: 'http://localhost:8888', pathRewrite: { "^/api": "" }, secure: false, changeOrigin: true, }, }, }, };
target:
表示的是代理到的目標地址,比如 /api
會被代理到 http://localhost:8888/api
pathRewrite:
預設情況下,我們的 /api
也會被寫入到URL中,即:http://localhost:8888/api, 如果希望刪除,可以使用pathRewrite
;
secure:
預設情況下,將不接受在 HTTPS 上執行且證書無效的後端伺服器。 如果希望支援,可以設定為false;
changeOrigin:
它表示是否更新代理後請求的headers中host地址,一般設定為true
historyApiFallback
是開發中一個非常常見的屬性,它主要的作用是解決SPA頁面在路由跳轉之後,進行頁面重新整理 時,返回404的錯誤。
module.exports = { devServer: { //如果設定為true,那麼在重新整理時,返回404錯誤時,會自動返回 index.html 的內容; historyApiFallback: true, }, };
module.exports = { //... devServer: { historyApiFallback: { rewrites: [ { from: /^/$/, to: '/views/landing.html' }, { from: /^/subpage/, to: '/views/subpage.html' }, { from: /./, to: '/views/404.html' }, ], }, }, };
devServer中實現historyApiFallback功能是通過connect-history-api-fallback庫的: For more options and information,檢視 connect-history-api-fallback 檔案
以上就是webpack5之devServer的常用設定詳解的詳細內容,更多關於webpack5 devServer設定的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45