webpack-dev-server開啟服務監(jiān)測js、HTML篓冲、CSS并自動刷新網(wǎng)頁的套路詳細步驟并附代碼

在一個合適的文件夾下npm初始化

npm init

安裝webpack

cnpm install webpack --save-dev

創(chuàng)建webpack.config.js文件李破,也可以鼠標右鍵創(chuàng)建(下同宠哄,省略)。

touch webpack.config.js

建立一個app文件夾

mkdir app

在app文件夾中建立一個main.js的文件和一個index.html文件

cd app                      // 進入新創(chuàng)建的app文件夾
touch main.js
touch index.html
cd ..                       // 退出app文件夾嗤攻,到上一層

在main.js中隨便寫點什么毛嫉,比如

var app = document.getElementById("app");
app.innerHTML = "This is an example";

在index.html中隨便寫點什么,其中id要與上面的代碼對應

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>This is an example</title>
    </head>
    <body>
        <div class="">
            <p id="app"></p>
        </div>
        <script type="text/javascript" src="../build/bundle.js"></script>
    </body>
</html>

在webpack.config.js文件中加入如下代碼妇菱,其中其中publicPath是后面配置webpack.dev.server的時候用的承粤。

var path = require("path");
module.exports = {
  entry: {
    app: ["./app/main.js"]
  },
  output: {
    path: path.resolve(__dirname, "build"),
    publicPath: "/assets/",
    filename: "bundle.js"
  }
};

運行以下webpack,先編譯下試試恶耽,因為只是局部安裝,所以運行的時候要這樣

node_modules/.bin/webpack

運行完之后就可以在terminal中看到運行的結(jié)果颜启,工作目錄中也會自動創(chuàng)建了一個build的文件夾偷俭,里面有一個bundle.js的文件,這些都是在上面webpack.config.js里面配置的結(jié)果缰盏。

瀏覽器打開index.html看看

先進入app文件夾

cd app

打開index.html的三種方法

open index.html                                      // 默認瀏覽器打開
open -a /Applications/Google\ Chrome.app index.html  // chrome打開涌萤,前提是你的chrome放在了Applications里面
open -a "Google Chrome" index.html                   //你也不知道chrome在哪,就用這個

安裝webpack-dev-server口猜,下面cd的命令就不寫了

cd ..                       // 因為上一步進入app文件夾了负溪,所以要退出來
npm install webpack-dev-server --save-dev

把index中的../build/bundle.js改成/assets/bundle.js這個與上面設置的publicPath有關。如果沒有publicPath济炎,那這個路徑就直接寫成bundle.js

在命令行輸入

node_modules/.bin/webpack-dev-server --content-base app/

運行了之后命令行會提示端口的號碼川抡,這個時候這個命令行在啟動服務,在想用命令行打開瀏覽器就不方便了须尚,所以手動到瀏覽器輸入localhost:8080/index.html崖堤;

另一種iframe模式的操作的區(qū)別只在輸入的網(wǎng)址:localhost:8080/webpack-dev-server/index.html

以上兩種打開網(wǎng)頁的方式選用一種即可。

這個時候要注意的是耐床,生成的bundle.js文件在內(nèi)存中密幔,我們是看不到的。

以后還沒多次的使用開啟服務的命令撩轰,總是這樣輸入大串的命令實在不合適胯甩,所以,到npm初始化時候創(chuàng)建的package.json里面的scripts中加一行代用的命令

"dev": "webpack-dev-server --content-base app/"

再運行的時候就這樣

npm run dev

運行了服務并打開了網(wǎng)頁之后堪嫂,再改動main.js文件偎箫,瀏覽器就可以自動刷新了。

自動刷新HTML

安裝HtmlWebpackPlugin插件皆串,這里要說一下镜廉,這個插件并不是用來刷新HTML的,而是用來一塊打包HTML文件的愚战,真正用來打包的時候的配置并不是這樣的娇唯。

npm install --save-dev html-webpack-plugin

在webpack.dev.server中添加配置

var path = require("path");
var HtmlWebpackPlugin = require('html-webpack-plugin'); // 添加在這里
module.exports = {
  entry: {
    app: ["./app/main.js"]
  },
  output: {
    path: path.resolve(__dirname, "build"),
    publicPath: "/assets/",
    filename: "bundle.js"
  },
  plugins: [new HtmlWebpackPlugin({                 //添加在這里
    template: path.resolve(__dirname, 'app/index.html'),
    filename: 'index.html',
    inject: 'body'
  })]
};

運行一下齐遵,改動html就可以自動刷新了。

自動刷新css

安裝style-loader和css-loader

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

在main.js中引入style.css塔插,由于main.js上面指定的配置中的入口饲鄙,所以不再main.js中引入style.css的話,webpack是找不到這個文件的浙滤。

import './style.css';

在webpack.dev.server中添加配置沃呢,添加在output下面,plugins上面流纹。

  module: {
    loaders: [
        {
            test: /\.css$/,
            loader: 'style-loader!css-loader'
        }
      ]
  },

創(chuàng)建一個css糜烹,隨便寫點什么

p {
    background-color: blue;
}

在次再運行,修改css就可以自動刷新了漱凝。

完整代碼在github
博客:https://zhuanyongxigua.github.io

參考:

WEBPACK DEV SERVER

HtmlWebpackPlugin

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疮蹦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子茸炒,更是在濱河造成了極大的恐慌愕乎,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壁公,死亡現(xiàn)場離奇詭異感论,居然都是意外死亡,警方通過查閱死者的電腦和手機紊册,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門比肄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人囊陡,你說我怎么就攤上這事薪前。” “怎么了关斜?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵示括,是天一觀的道長。 經(jīng)常有香客問我痢畜,道長垛膝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任丁稀,我火速辦了婚禮吼拥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘线衫。我一直安慰自己凿可,他們只是感情好,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著枯跑,像睡著了一般惨驶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上敛助,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天粗卜,我揣著相機與錄音,去河邊找鬼纳击。 笑死续扔,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的焕数。 我是一名探鬼主播纱昧,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼堡赔!你這毒婦竟也來了识脆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤加匈,失蹤者是張志新(化名)和其女友劉穎存璃,沒想到半個月后仑荐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雕拼,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年粘招,在試婚紗的時候發(fā)現(xiàn)自己被綠了啥寇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡洒扎,死狀恐怖辑甜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情袍冷,我是刑警寧澤磷醋,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站胡诗,受9級特大地震影響邓线,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜煌恢,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一骇陈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瑰抵,春花似錦你雌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拨拓。三九已至,卻和暖如春逛球,著一層夾襖步出監(jiān)牢的瞬間千元,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工颤绕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留幸海,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓奥务,卻偏偏與公主長得像物独,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子氯葬,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容