webpack入門

  1. 安裝webpack
    首先需要安裝node.js環(huán)境,見node官網(wǎng).
    安裝nodejs后使用npm 安裝 webpack命令

     $ npm install webpack -g 
    

這樣webpack 命令即能在全局環(huán)境下使用

  1. webpack小示例第一步

    創(chuàng)建空目錄Demo文件夾 文件夾中創(chuàng)建app空文件夾
    在app文件夾中創(chuàng)建entry.js文件
    文件內(nèi)容如下 --entry.js

     document.write("It works.");
    

    在app文件夾中創(chuàng)建 index.html
    文件內(nèi)容如下 --index.html

     <!DOCTYPE html>
     <html lang="en">
     <head>
       <meta charset="UTF-8">
       <title>webpack入門</title>
     </head>
     <body>
       <script type="text/javascript" src="bundle.js" charset="utf-8"></script>
     </body>
     </html>
    

    執(zhí)行命令:

     $ cd Demo/app
     $ webpack ./entry.js bundle.js 
    

該命令會(huì)對(duì)entry.js文件編譯并創(chuàng)建一個(gè)bundle.js文件
如果成功的話,它會(huì)顯示如下:

    Hash: ca188ee5789bb780fcec
    Version: webpack 1.13.0
    Time: 65ms
        Asset     Size  Chunks             Chunk Names
    bundle.js  1.42 kB       0  [emitted]  main
        [0] ./entry.js 28 bytes {0} [built]

在瀏覽器中打開index.html 顯示 It works.

  1. 第二步依賴文件加載

    在app文件夾下添加content.js內(nèi)容為

     module.exports = "It works from content.js.";
    

    更改entry.js文件內(nèi)容為:

     document.write(require("./content.js"));
    

    執(zhí)行命令:

     $ webpack ./entry.js bundle.js 
    

    刷新瀏覽器index.html頁(yè)面, 顯示It works from content.js.
    webpack會(huì)分析你的輸入文件的依賴的其他文件旗国。這些文件(稱為模塊)都會(huì)最終包含在你的bundle.js中。webpack會(huì)給每個(gè)模塊的一個(gè)獨(dú)特的ID以及保存所有模塊的ID以便在bundle.js文件訪問(wèn)勒庄。僅在啟動(dòng)時(shí)執(zhí)行輸入模塊,在運(yùn)行時(shí)提供需要的功能瘫里,并在需要時(shí)執(zhí)行依賴实蔽。

  2. 第一次使用loaders

    我們要添加一個(gè)CSS文件到我們的示例中
    webpack只能處理JavaScript本身,所以我們需要css-loader去裝載CSS文件,同樣也需要style-loader谨读。
    執(zhí)行命令

     $ npm install css-loader style-loader
    

    在app文件夾下添加style.css文件
    文件內(nèi)容如下--style.css

     body {
         background: yellow;
     }
    

更新entry.js文件

    require("!style!css!./style.css");
    document.write(require("./content.js"));

執(zhí)行命令:

    $ webpack ./entry.js bundle.js 

刷新瀏覽器index.html頁(yè)面, 顯示帶有黃色背景的It works from content.js.
webpack只能處理JavaScript本身局装,style.css通過(guò)!style!css!裝載機(jī)管道以特定的方式中改變輸出 bundle.js 文件的內(nèi)容。這些轉(zhuǎn)換后的結(jié)果是一個(gè)JavaScript模塊劳殖。
如果我們不想使用 require("!style!css!./style.css");
而想直接使用require("./style.css");
更新entry.js文件內(nèi)容為:

    require("./style.css");
    document.write(require("./content.js"));

執(zhí)行命令時(shí)要綁定加載模塊:

    $ webpack ./entry.js bundle.js --module-bind 'css=style!css'

刷新瀏覽器index.html頁(yè)面, 顯示同樣的效果铐尚。
某些環(huán)境下這里可能要用雙引號(hào) "css=style!css"

  1. 使用配置文件 webpack.config.js

    在Demo文件夾下創(chuàng)建webpack.config.js
    文件內(nèi)容如下:

     module.exports = {
         entry: "./app/entry.js",
         output: {
             path: __dirname,
             filename: "./app/bundle.js"
         },
         module: {
             loaders: [
                 { test: /\.css$/, loader: "style!css" }
             ]
         }
     };
    

    現(xiàn)在只需要在Demo目錄下執(zhí)行命令:

     $ webpack
     執(zhí)行成功會(huì)顯示:
     Hash: ab14e3789227f2cbf6c0
     Version: webpack 1.13.0
     Time: 955ms
           Asset     Size  Chunks            Chunk Names
     ./app/bundle.js  11.8 kB       0  [emitted]  main
          [0] ./app/entry.js 67 bytes {0} [built]
          [5] ./app/content.js 45 bytes {0} [built]
             + 4 hidden modules
    

    webpack會(huì)自動(dòng)加載當(dāng)前目錄下的webpack.config.js文件

  2. 漂亮的輸出
    隨著項(xiàng)目的增長(zhǎng),編譯可能需要更長(zhǎng)的時(shí)間哆姻。所以我們要展示一些進(jìn)度條宣增、顏色…可以使用命令

     $webpack --progress --colors
    
  3. 使用watch model
    使用watch model模式時(shí),可理解為監(jiān)聽模式,如果檢測(cè)到任何文件更改矛缨,它將再次運(yùn)行編譯爹脾。

     $webpack --watch 
    
  4. 使用webpack開發(fā)服務(wù)器

     // npm 全局安裝webpack開發(fā)服務(wù)器
     $ npm install webpack-dev-server -g
     在Demo文件夾下執(zhí)行
     $ webpack-dev-server --progress --colors
    

    webpack-dev-server 會(huì)在本地提供一個(gè)靜態(tài)文件服務(wù)器
    http://localhost:8080/webpack-dev-server/
    同時(shí)內(nèi)部也在使用webpack的watc模式自動(dòng)編譯更新
    瀏覽器中打開http://localhost:8080/webpack-dev-server/
    只要文件有更新 瀏覽器也會(huì)自動(dòng)刷新頁(yè)面。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末箕昭,一起剝皮案震驚了整個(gè)濱河市灵妨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌落竹,老刑警劉巖泌霍,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異述召,居然都是意外死亡朱转,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門桨武,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)肋拔,“玉大人,你說(shuō)我怎么就攤上這事呀酸×狗洌” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵性誉,是天一觀的道長(zhǎng)窿吩。 經(jīng)常有香客問(wèn)我,道長(zhǎng)错览,這世上最難降的妖魔是什么纫雁? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮倾哺,結(jié)果婚禮上轧邪,老公的妹妹穿的比我還像新娘刽脖。我一直安慰自己,他們只是感情好忌愚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布曲管。 她就那樣靜靜地躺著,像睡著了一般硕糊。 火紅的嫁衣襯著肌膚如雪院水。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天简十,我揣著相機(jī)與錄音檬某,去河邊找鬼。 笑死螟蝙,一個(gè)胖子當(dāng)著我的面吹牛恢恼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播胶逢,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼厅瞎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了初坠?” 一聲冷哼從身側(cè)響起和簸,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎碟刺,沒想到半個(gè)月后锁保,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡半沽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年爽柒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了慨蓝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隔嫡。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡胁勺,死狀恐怖猬腰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情士修,我是刑警寧澤智什,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布持灰,位于F島的核電站榨乎,受9級(jí)特大地震影響怎燥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蜜暑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一铐姚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肛捍,春花似錦隐绵、人聲如沸之众。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)酝枢。三九已至,卻和暖如春悍手,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背袍患。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工坦康, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诡延。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓滞欠,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親肆良。 傳聞我的和親對(duì)象是個(gè)殘疾皇子筛璧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

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

  • GitChat技術(shù)雜談 前言 本文較長(zhǎng),為了節(jié)省你的閱讀時(shí)間惹恃,在文前列寫作思路如下: 什么是 webpack夭谤,它要...
    蕭玄辭閱讀 12,697評(píng)論 7 110
  • 寫在前面 第一次接觸webpack,是在一個(gè)react項(xiàng)目參與中巫糙,剛開始使用的時(shí)候朗儒,甚至不知道是做什么用的,只看到...
    默默先生Alec閱讀 656評(píng)論 0 3
  • (一)歡迎了解webpack参淹; (本文的內(nèi)容大部分來(lái)自webpack的官方文檔醉锄,寫的目的是自己入門時(shí)候遇到的困惑,...
    sky_rainbow閱讀 1,439評(píng)論 0 1
  • 一.什么是 Webpack Webpack 是一個(gè)模塊打包器浙值。它將根據(jù)模塊的依賴關(guān)系進(jìn)行靜態(tài)分析恳不,然后將這些模塊按...
    逍遙g閱讀 776評(píng)論 0 0
  • DEMO地址:http://pan.baidu.com/s/1eR4s2uI 1.前言 現(xiàn)今的很多網(wǎng)頁(yè)其實(shí)可以看做...
    童井神閱讀 338評(píng)論 0 1