首頁  >  文章  >  web前端  >  深入淺析devServer配置實現即時編譯問題

深入淺析devServer配置實現即時編譯問題

WBOY
WBOY轉載
2022-08-09 15:22:011249瀏覽

這篇文章為大家帶來了關於javascript的相關知識,其中主要介紹了關於devServer配置實現實時編譯的相關問題,webpack-dev-server主要是啟動了一個使用express的Http伺服器,下面一起來看一下,希望對大家有幫助。

深入淺析devServer配置實現即時編譯問題

【相關推薦:javascript影片教學web前端

每次改完程式碼都需要重新打包一次,打開瀏覽器,刷新一次,很麻煩

我們可以安裝使用webpackdevserver來改善這塊的體驗

webpack-dev-server主要是啟動了一個使用express的Http伺服器。它的作用主要是用來伺服資源檔案。另外這個Http伺服器和client使用了websocket通訊協議,原始檔案作出改動後,webpack-dev-server會即時的編譯,但是最後的編譯的檔案並沒有輸出到目標資料夾,也就是下面原本我們output中的配置:是打包後要產生dist資料夾的,但用dev-server並沒有產生dist目錄

output: {
        path: './dist/js',
        filename: 'bundle.js'
    }

啟動服務後,會發現dist目錄沒有了,這是因為devServer把打包後的模組不會放在dist目錄下,而是放到記憶體中,從而提升速度

安裝:npm install webpack-dev-server -D

修改下package.json:

深入淺析devServer配置實現即時編譯問題

 那麼以後就可以執行npm run server即可啟動我們的服務

在webpack.config.js設定:

深入淺析devServer配置實現即時編譯問題

跨域:聯調期間,前後端分離,直接取得資料會跨域,上線後我們使用nginx轉發,開發期間,webpack就可以搞定這件事

應用場景:我們在自己用express造了介面和數據,我們存取這些介面時候會造成跨域問題,之前都是在server.js中去設定回應頭的形式去允許跨域。但是現在可以用devServer的代理也可以。

1.準備node服務,在專案根目錄建立server.js,以express建立服務為例:

深入淺析devServer配置實現即時編譯問題

2.webpack.config,js檔案中設定devServer:

深入淺析devServer配置實現即時編譯問題

# 3..安裝axios,並在入口檔案index.js中引入,用axios去請求介面資料

深入淺析devServer配置實現即時編譯問題

 前台瀏覽器拿到結果:

深入淺析devServer配置實現即時編譯問題

# 前台瀏覽器拿到結果:

##Hot Module Replacement (HMR:熱模組替換) 是webpack自帶的一個模組,不需要額外安裝

##配置hmr:

1)設定文件webpack.config.js頭部引入webpack深入淺析devServer配置實現即時編譯問題

const webpack = require("webpack");

2)在外掛程式設定處新增:

plugins: [
    new webpack.HotModuleReplacementPlugin()
]

3)啟動hmr

##以上設定對js熱更新不起作用,儲存時候還是會重新整理頁面才會起到更新效果:

深入淺析devServer配置實現即時編譯問題我們有兩個b.js和a.js檔案

b.js中return 1

深入淺析devServer配置實現即時編譯問題

 a.js中引入b.js ,並在頁面中寫入資料b的執行結果一個數字

深入淺析devServer配置實現即時編譯問題

在入口檔index.js中,引入a,運行npm run server(我們的熱更新配置還是保留之前的不變)

深入淺析devServer配置實現即時編譯問題

然後我們開啟頁面,更改a.js中的b() 1000的值,然後ctrl s 儲存,發現頁面刷新後才能更新值。這顯然不是我們想要看到的,對於js的熱更新我們需要在入口檔案中監聽要執行的檔案:

深入淺析devServer配置實現即時編譯問題

####在更改a.js中的值後來儲存,不用重新整理頁面,值也會運算為最新值顯示在頁面中#############

 總結:HMR預設對css熱更新支援教好,對於js需要單獨的監聽才可以

【相關推薦:javascript影片教學web前端

以上是深入淺析devServer配置實現即時編譯問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:走看看。如有侵權,請聯絡admin@php.cn刪除