webpack實戰(zhàn)4之實時刷新

注意:

本文假設(shè)你有webpack 的基礎(chǔ)認(rèn)識。

本文的目的是實現(xiàn)一個服務(wù)器和實時刷新的功能。

當(dāng)文件發(fā)生改變并保存后,瀏覽器能夠自動刷新頁面,使得用戶無需手動刷新界面。

項目結(jié)構(gòu)如下所示:

91498130935_.pic.jpg

開始實戰(zhàn)

創(chuàng)建一個目錄<code>webpack-demo4</code>,并安裝<code>wbepack</code>。

  mkdir webpack-demo4 && cd webpack-demo4
  npm init -y
  npm install --save-dev webpack

安裝 <code>webpack-dev-server</code>,<code>style-loader</code>,<code>css-loader</code>

  npm install webpack-dev-server style-loader css-loader --save-dev

webpack-dev-server的作用是為你提供了一個服務(wù)器和實時刷新的功能。

新建<code>index.html</code>文件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
  <script src="/bundle.js"></script>
</body>
</html>

注意: script標(biāo)簽中的文件路徑不能寫成’./dist/bundle.js',必須寫成'/bundle.js'或'http://localhost:8080/bundle.js'。
這是因為<code>webapck-dev-server</code>使用內(nèi)存編譯,所以bundle 不會被保存在硬盤上,你看不到編譯后的文件。
使用內(nèi)存編譯的工具還有<code>webpack-dev-middleware </code>

新建<code>index.css</code>文件

.root {
  width: 200px;
  height: 200px;
  text-align: center;
  line-height: 200px;
  background: red;
}

新建<code>index.js</code>文件

import './index.css';

function create(){
    const elem = document.createElement('div');
    elem.classList.add('root');
      elem.innerHTML = 'Hello World haha';
  document.body.appendChild(elem);
}
create();

新建<code>webpack.config.js</code>文件

  const path = require('path');
  module.exports = {
    entry: './index.js',
    output: {
        filename: 'bundle.js'
    },
    module: {
        rules: [
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader']
            }
        ]
    }
}

這里去掉了output對象中的“path:path.resolve(__dirname,'dist')”的代碼。這因為內(nèi)存編譯,不輸出具體文件,所以不必指定dist文件夾了。

修改<code>package.json</code>文件中的'scripts'

"scripts": {
    "start": "webpack-dev-server --open"
},

最后啟動命令

npm start

你會發(fā)現(xiàn)頁面會自動在瀏覽器打開。這個時候,不管你修改index.js還是index.css樣式,瀏覽器都會自動刷新頁面。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • webpack 介紹 webpack 是什么 為什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert閱讀 6,665評論 2 71
  • 構(gòu)建一個小項目——FlyBird,學(xué)習(xí)webpack和react。(本文成文于2017/2/25) 從webpac...
    布蕾布蕾閱讀 17,126評論 31 98
  • 無意中看到zhangwnag大佬分享的webpack教程感覺受益匪淺,特此分享以備自己日后查看,也希望更多的人看到...
    小小字符閱讀 8,368評論 7 35
  • 最近在學(xué)習(xí) Webpack,網(wǎng)上大多數(shù)入門教程都是基于 Webpack 1.x 版本的,我學(xué)習(xí) Webpack 的...
    My_Oh_My閱讀 8,330評論 40 247
  • 你用 Quora 嗎?我是一個Quora 粉, 我的意思是,我花很多時間刷Quora,讀好答案。我覺得這是一個學(xué)英...
    蘭舟醬閱讀 1,175評論 6 7

友情鏈接更多精彩內(nèi)容