1. 程式人生 > 其它 >使用webpack-dev-server搭建本地伺服器

使用webpack-dev-server搭建本地伺服器

技術標籤:webpackwebpack前端

webpack提供了一個可選的本地開發伺服器 webpack-dev-server,這個本地伺服器基於node.js搭建,內部使用express框架,可以實現我們想要的讓瀏覽器自動重新整理顯示我們修改後的結果。

第一步:安裝

它是一個單獨的模組,在使用之前需要先安裝它。

安裝:npm install --save-dev [email protected]

我使用的webpack版本是3.6.0,webpack-dev-server的版本是2.9.0

第二步:配置

安裝好之後我們需要在webpack.config.js檔案中新增 dev-server

進行配置。

選項本身可以設定如下屬性:

  • contentBase:為哪一個資料夾提供本地服務,這裡我填寫./dist
  • port:埠號,預設為8080
  • inline:控制頁面是否實時重新整理。取值為true或false,當為true時,修改了程式碼後頁面會自動重新整理
  • historyApiFallback:在SPA頁面中,依賴HTML5的history模式
// webpack.config.js
//...

module.exports = {
   // ...其它配置
  devServer: { 
    contentBase:'./dist',
    inline:true,
  }
}

第三步:使用

此時,如果我們直接在終端中輸入 webpack-dev-server

命令,發現報錯了:告訴我們找不到這個命令。
在這裡插入圖片描述
原因:不管我們是通過 cmd ,還是編輯器的終端,直接輸入命令,就像上邊那樣,它會去全域性中尋找這個命令去執行。但是webpack-dev-server是區域性安裝(因為我們使用的是 --save-dev,而不是 -g),所以在全域性中找不到,就報錯了。

解決方法:在 package.json 檔案的scripts中,新增一條命令:

//package.json檔案

"scripts": {
    // ...其它命令
    "dev": "webpack-dev-server --open"
//--open表示執行完命令後自動開啟瀏覽器 }

然後我們使用 npm run dev 命令就可以了

再解釋一下scripts中的命令:

  • scripts 中定義的都是一些命令,當我們使用 npm run xxx 的時候,就會去package.json檔案中的scripts尋找 xxx 命令來執行。接下來會按照一定的順序尋找命令對應的位置。
  • 首先,會在本地的 node_modules/.bin 路徑中尋找對應的命令。如果沒有找到,會去全域性的環境變數中尋找。

注意事項

在這裡插入圖片描述
我的程式碼目錄結構中並沒有 dist 資料夾,看不到編譯後的檔案,但是啟動webpack-dev-server後可以正常執行,原因在於實時編譯後的檔案都儲存到了記憶體當中。