Webpack get started

Get Start

文檔地址
webpack是用來構(gòu)建app中的js module的。webpack可以簡化構(gòu)建依賴應(yīng)用的的依賴關(guān)系圖并讓依賴內(nèi)容按照規(guī)定的順序進(jìn)行構(gòu)建滨嘱。weboack可以自定義化代碼,可以在對外發(fā)布的時(shí)候分拆vendor/css/js代碼渣聚,在測試時(shí)使用hot-reload機(jī)制愉耙。

Creating a bundle

創(chuàng)建webpack的項(xiàng)目

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

一般js項(xiàng)目的傳統(tǒng)寫法如下

//app/index.js
function component () {
  var element = document.createElement('div');

  /* lodash is required for the next line to work */
  element.innerHTML = _.join(['Hello','webpack'], ' ');

  return element;
}

document.body.appendChild(component());
//index.html
<html>
  <head>
    <title>webpack 2 demo</title>
    <script src="https://unpkg.com/lodash@4.16.6"></script>
  </head>
  <body>
    <script src="app/index.js"></script>
  </body>
</html>

需要在html中指定要加載的index.js,但是由于index.js中使用了lodash庫块饺,
所以需要先指定加載該庫赞辩,才能在index.js中使用_符號。
傳統(tǒng)的寫法可能會導(dǎo)致授艰,加載很多不需要使用的庫辨嗽,而這些不使用的庫,
會影響網(wǎng)頁的加載速度淮腾。

使用webpack則不會有該問題糟需。
下面是使用webpack實(shí)現(xiàn)同樣操作的代碼示例
首先需要安裝lodash,
npm install --save lodash

//app/index.js
import _ from 'lodash'
function component () {
  var element = document.createElement('div');

  /* lodash is required for the next line to work */
  element.innerHTML = _.join(['Hello','webpack'], ' ');

  return element;
}

document.body.appendChild(component());
//index.html
<html>
  <head>
    <title>webpack 2 demo</title>
  </head>
  <body>
  <!--注意加載的該js文件是通過webpack生成的-->
    <script src="dist/bundle.js"></script>
  </body>
</html>

代碼編寫完成后在命令行中執(zhí)行
./node_modules/.bin/webpack app/index.js dist/bundle.js
表示從app/index.js入口文件開始谷朝,生成需要使用的dis/bundle.js文件洲押。
此時(shí)訪問網(wǎng)頁,實(shí)現(xiàn)的效果是一樣的圆凰。
使用webpack打包杈帐,在打包的過程中,webpack只會將使用到的js代碼進(jìn)行打包专钉。
未用到的會被移除挑童。

ES2015

注意上面的代碼,使用了ES2015中的import/export語法驶沼。
webpack只處理import/export炮沐,除了這個之外想要使用其他的ES2015的語法,
仍然需要使用babel

webpack配置文件

真實(shí)項(xiàng)目中不可能使用命令行傳參的方式進(jìn)行配置回怜。
一般會使用配置文件的形式大年。
配置文件名為webpack.config.js.
之前給項(xiàng)目傳遞的配置參數(shù)對應(yīng)于下面的配置文件。

var path = require('path');

module.exports = {
  entry: './app/index.js',//打包的入口文件
  output: {
    filename: 'bundle.js',//打包生成的文件名
    path: path.resolve(__dirname, 'dist')//打包文件存放的路徑
  }
};

按照上面配置執(zhí)行webpack命令如下所示

./node_modules/.bin/webpack --config webpack.config.js

Hash: ff6c1d39b26f89b3b7bb
Version: webpack 2.2.0
Time: 390ms
    Asset    Size  Chunks                    Chunk Names
bundle.js  544 kB       0  [emitted]  [big]  main
   [0] ./~/lodash/lodash.js 540 kB {0} [built]
   [1] (webpack)/buildin/global.js 509 bytes {0} [built]
   [2] (webpack)/buildin/module.js 517 bytes {0} [built]
   [3] ./app/index.js 278 bytes {0} [built]

如果存在webpack.config.js文件玉雾,webpack命令會默認(rèn)使用該配置文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末翔试,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子复旬,更是在濱河造成了極大的恐慌垦缅,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件驹碍,死亡現(xiàn)場離奇詭異壁涎,居然都是意外死亡凡恍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進(jìn)店門怔球,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嚼酝,“玉大人,你說我怎么就攤上這事竟坛∶龉” “怎么了?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵担汤,是天一觀的道長涎跨。 經(jīng)常有香客問我,道長崭歧,這世上最難降的妖魔是什么隅很? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮率碾,結(jié)果婚禮上外构,老公的妹妹穿的比我還像新娘。我一直安慰自己播掷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布撼班。 她就那樣靜靜地躺著歧匈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砰嘁。 梳的紋絲不亂的頭發(fā)上件炉,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天,我揣著相機(jī)與錄音矮湘,去河邊找鬼斟冕。 笑死,一個胖子當(dāng)著我的面吹牛缅阳,可吹牛的內(nèi)容都是我干的磕蛇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼十办,長吁一口氣:“原來是場噩夢啊……” “哼秀撇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起向族,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤呵燕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后件相,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體再扭,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡氧苍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了泛范。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片让虐。...
    茶點(diǎn)故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖敦跌,靈堂內(nèi)的尸體忽然破棺而出澄干,到底是詐尸還是另有隱情,我是刑警寧澤柠傍,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布麸俘,位于F島的核電站,受9級特大地震影響惧笛,放射性物質(zhì)發(fā)生泄漏从媚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一患整、第九天 我趴在偏房一處隱蔽的房頂上張望拜效。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背般眉。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留潜支,地道東北人甸赃。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像冗酿,于是被迫代替她去往敵國和親埠对。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評論 2 359

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