JS那些事兒——Webpack入門使用

前言

webpack 是什么?來(lái)自一位小白的疑問(wèn)庭砍。

是構(gòu)建工具场晶,還是打包工具?

webpack是一個(gè)模塊加載器兼打包工具怠缸,它能夠讓你非常清晰的把編寫模塊化的代碼诗轻,什么編譯都交給webpack就好了,當(dāng)它也能實(shí)現(xiàn)簡(jiǎn)單的打包揭北,比如合并js扳炬,壓縮等吏颖。

下面我們簡(jiǎn)單說(shuō)下webpackgulp的區(qū)別,好加深下webpack的理解鞠柄。

本質(zhì)上來(lái)說(shuō)侦高,gulp是通過(guò)一系列的插件實(shí)現(xiàn)了原本復(fù)雜繁瑣的任務(wù)自動(dòng)化,比如拷貝啊厌杜,替換文件啥的奉呛,是一個(gè)純粹的工具。它并不能將你的css夯尽,圖片等非js資源模塊化瞧壮。但是webpack可以做到將非js資源模塊化,比如圖片等匙握。

總的來(lái)說(shuō)咆槽,gulp是一個(gè)自動(dòng)化任務(wù)的工具,所以在項(xiàng)目的開(kāi)發(fā)中圈纺,你也可以采用 gulp + webpack 組合大招更好的提升項(xiàng)目效率秦忿。

Webpack的入門使用

說(shuō)那么多概念還不如寫個(gè)小demo來(lái)的實(shí)在,相比各位看官也是這么想得蛾娶。

其實(shí)灯谣,我們記住webpack的核心功能是將靜態(tài)資源模塊化,js蛔琅,css胎许,圖片啊等等,都能通過(guò)require的方式進(jìn)行加載罗售。當(dāng)然你也可以利用ES6語(yǔ)法improt來(lái)引入辜窑,這個(gè)后面說(shuō)。

下面我們開(kāi)始進(jìn)行咱們的項(xiàng)目吧寨躁。

1.首先創(chuàng)建一個(gè)空目錄穆碎,執(zhí)行命令進(jìn)行初始化

 > npm init

這樣,咱們就有package.json了职恳,下面我們先把文件目錄搭建一下哈惨远。

目錄結(jié)構(gòu)如下:

目錄結(jié)構(gòu)
目錄結(jié)構(gòu)

好。文件我們建完了话肖,該干活寫代碼了北秽。

第一個(gè)是 index.html 首頁(yè),這里我們的很簡(jiǎn)單外部只是引入了一個(gè) bundle.js最筒,相信大家現(xiàn)在也找不到這個(gè)bundle.js贺氓,因?yàn)檫@個(gè)文件是后面webpack編譯打包生成的。他會(huì)將style.css床蜘,index.js打包成一個(gè)js辙培,這樣能加快瀏覽器的加載效率蔑水。

//index.html

<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>demo1</title>
    </head>
    <body>
        <div>Hello,world</div>
        [站外圖片上傳中……(4)]
        <script src="../dist/bundle.js"></script>
    </body>
    </html>

再看看 style.css,很簡(jiǎn)單扬蕊,就一句話搀别。

// style.css

body{
    background:red;
}

再下一下步,我們看看 index.js尾抑,它也很簡(jiǎn)單歇父,而且它的目的是webpack的入口文件,webpack打包就是通過(guò)入口文件將里面require的資源一個(gè)個(gè)加載編譯打包再愈。你可以把index.js看成一個(gè)向?qū)О裆唬敢?code>webpack去尋找那些需要被解救編譯打包的文件。

//index.js

require('./style.css');

The Next,我們看看編寫 webpack.config.js 翎冲,特別聲明垂睬,這個(gè)文件是webpack的默認(rèn)配置,一般你沒(méi)啥需求也別改它了抗悍,但是你要修改的話驹饺,自己百度去吧。

修改webpack配置文件命令如下:

> webpack --config XXX.js

具體webpack.config.js配置如下:

// webpack.config.js

var path = require('path')
var webpack = require('webpack');

module.exports = {
  entry: ['./src/index'],  // 指定編譯打包入口文件
  output: {   // 編譯完了缴渊,輸出到這個(gè)目錄赏壹,這個(gè)文件名
    path: path.join(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  plugins: [  // 這個(gè)是插件配置噢
    new webpack.optimize.UglifyJsPlugin({
      compressor: {
        warnings: false,
      },
    })
  ],
  module: {  // 這個(gè)是引入的模塊,可以用來(lái)做一些其他的事兒
    loaders: [{  //比如這個(gè)loaders模塊疟暖,可以給每種類型文件指定加載器
      test: /\.css$/,
      loaders: ['style', 'css']
    },
    ]
  }
}

好了卡儒,到現(xiàn)在我們的業(yè)務(wù)代碼都寫完了田柔,該安裝所需的插件了俐巴。

這里一下安裝了多個(gè)插件,可能會(huì)比較慢硬爆,可以先換成國(guó)內(nèi)的淘寶npm鏡像:

> npm --registry https://registry.npm.taobao.org info underscore 

安裝插件命令如下:

> npm install style-loader css-loader webpack --save

--save 是將依賴寫入到package.json里欣舵,后面代碼給其他人用,直接npm install就能自動(dòng)安裝所有的依賴了缀磕。

安裝完成后缘圈,咱們開(kāi)始打包!M嗖稀糟把!

在項(xiàng)目目錄執(zhí)行以下命令:別傻乎乎的把 > 也拷貝進(jìn)去啊,就是只有一個(gè) webpackI辍G卜琛!

> webpack

執(zhí)行完上面的webpack命令凿傅,會(huì)出現(xiàn)以下令人欣喜的畫面缠犀,啥数苫?沒(méi)出現(xiàn)?自己上去找找看看哪里步驟漏了辨液。
這里順便推薦一個(gè)好用的windows下面的命令行工具: cmder

然后你再打開(kāi)你項(xiàng)目目錄的 index.html 虐急,直接雙擊用瀏覽器打開(kāi)噢。

就能看的如下畫面滔迈。相信你的require('./style.css')也就生效了止吁。

結(jié)果頁(yè)
結(jié)果頁(yè)

寫在最后

一個(gè)入門級(jí)的使用就到這兒了,webpack還有很多黑魔法亡鼠,本文也只是一個(gè)入門使用赏殃,后續(xù)的我用完再繼續(xù)跟大家分享一下,對(duì)了间涵,還請(qǐng)大神看到有誤的地方多多指點(diǎn)哈仁热,提點(diǎn)提點(diǎn)小弟。

如果對(duì)你有點(diǎn)點(diǎn)幫助勾哩,嘿嘿抗蠢,回復(fù)一下點(diǎn)個(gè)贊就是我最大的動(dòng)力,感激不盡思劳。

參考文獻(xiàn)

http://www.cnblogs.com/pqjwyn/p/5380689.html
https://github.com/wangning0/Autumn_Ning_Blog/blob/master/blogs/3-12/webpack.md#webpack學(xué)習(xí)之路

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末迅矛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子潜叛,更是在濱河造成了極大的恐慌秽褒,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件威兜,死亡現(xiàn)場(chǎng)離奇詭異销斟,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)椒舵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門蚂踊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人笔宿,你說(shuō)我怎么就攤上這事犁钟。” “怎么了泼橘?”我有些...
    開(kāi)封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵涝动,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我炬灭,道長(zhǎng)醋粟,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮昔穴,結(jié)果婚禮上镰官,老公的妹妹穿的比我還像新娘。我一直安慰自己吗货,他們只是感情好泳唠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著宙搬,像睡著了一般笨腥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上勇垛,一...
    開(kāi)封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天脖母,我揣著相機(jī)與錄音,去河邊找鬼闲孤。 笑死谆级,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的讼积。 我是一名探鬼主播肥照,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼勤众!你這毒婦竟也來(lái)了舆绎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤们颜,失蹤者是張志新(化名)和其女友劉穎吕朵,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體窥突,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡努溃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了波岛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茅坛。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡音半,死狀恐怖则拷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情曹鸠,我是刑警寧澤煌茬,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站彻桃,受9級(jí)特大地震影響坛善,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一眠屎、第九天 我趴在偏房一處隱蔽的房頂上張望剔交。 院中可真熱鬧,春花似錦改衩、人聲如沸岖常。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)竭鞍。三九已至,卻和暖如春橄镜,著一層夾襖步出監(jiān)牢的瞬間偎快,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工洽胶, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晒夹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓姊氓,卻偏偏與公主長(zhǎng)得像惋戏,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子他膳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

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

  • 在現(xiàn)在的前端開(kāi)發(fā)中响逢,前后端分離、模塊化開(kāi)發(fā)棕孙、版本控制舔亭、文件合并與壓縮、mock數(shù)據(jù)等等一些原本后端的思想開(kāi)始...
    Charlot閱讀 5,433評(píng)論 1 32
  • 最近在學(xué)習(xí) Webpack,網(wǎng)上大多數(shù)入門教程都是基于 Webpack 1.x 版本的,我學(xué)習(xí) Webpack 的...
    My_Oh_My閱讀 8,173評(píng)論 40 247
  • 無(wú)意中看到zhangwnag大佬分享的webpack教程感覺(jué)受益匪淺蟀俊,特此分享以備自己日后查看钦铺,也希望更多的人看到...
    小小字符閱讀 8,147評(píng)論 7 35
  • 前言 WebPack 是什么? WebPack 是什么肢预,WebPack 可以看做是模塊打包機(jī):它做的事情是矛洞,分析你...
    Promise__閱讀 1,123評(píng)論 3 12
  • 麗麗又跑來(lái)和我抱怨沼本,男票一聲不吭出差去了。 “那家伙三天兩頭不見(jiàn)人影锭沟,玩失蹤似的抽兆。”雖然隔著電話族淮,但我依舊能想象她...
    瓶子是個(gè)深井冰閱讀 310評(píng)論 0 1