webpack 先這么用

what-is-webpack.png

webpack

介紹
Webpack 是一個模塊打包器婶芭。它將根據(jù)模塊的依賴關(guān)系進行靜態(tài)分析,然后將這些模塊按照指定的規(guī)則生成對應(yīng)的靜態(tài)資源泛鸟;
開發(fā)便捷,能替代部分 grunt/gulp 的工作踊东,比如打包北滥、壓縮混淆、圖片轉(zhuǎn)base64等

安裝

// 全局安裝
npm install webpack -g
// 進入項目闸翅,安裝到項目依賴中
npm init
npm install webpack --save-dev

配置文件

每個項目下都必須配置有一個 webpack.config.js 再芋,它的作用如同常規(guī)的 gulpfile.js/Gruntfile.js,作為配置項告訴 webpack 如何工作坚冀。

默認情況下济赎,會搜索當前目錄的 webpack.config.js 文件,這個文件是一個 node.js 模塊,返回一個 json 格式的配置信息對象司训,或者通過 --config 選項來指定配置文件

例子:

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

Loader

Loader 用于預(yù)處理文件

使用方式

  • 通過 require 指定
  • webpack.config.js 中配置
  • 命令行執(zhí)行

插件 Plugins

通過插件可以添加特定功能

  • 內(nèi)嵌插件
  • 第三方插件

DefinePlugin

內(nèi)嵌插件构捡,無需安裝

用于在編譯期間定義常量

使用

例子:

new webpack.DefinePlugin({
    PRODUCTION: JSON.stringify(true),
    VERSION: JSON.stringify("5fa3b9"),
    BROWSER_SUPPORTS_HTML5: true,
    TWO: "1+1",
    "typeof window": JSON.stringify("object")
})

copy-webpack-plugin

拷貝資源插件

官方這樣解釋 Copy files and directories in webpack ,在 webpack 中拷貝文件和文件夾

https://github.com/kevlened/copy-webpack-plugin

安裝
npm install --save-dev copy-webpack-plugin
使用

new CopyWebpackPlugin([patterns], options)

web pack.config.js 中添加:

var CopyWebpackPlugin = require("copy-webpack-plugin");

module.exports = {
     plugins: [
        ...
         new CopyWebpackPlugin([{
            from: __dirname + '/src/index.html',
            to: __dirname + '/dist'
        }]),
        ...
     ]
}
配置項

clean-webpack-plugin

刪除編譯資源

在編譯前,刪除之前編譯結(jié)果目錄或文件

https://github.com/johnagan/clean-webpack-plugin

安裝
npm install clean-webpack-plugin --save-dev
使用

web pack.config.js 中添加:

var CleanPlugin = require("clean-webpack-plugin");

module.exports = {
    ...
     plugins: [
        ...
            new CleanPlugin(['dist', 'build']),
        ...
     ]
    ...
}

distbuild 為需要刪除資源

html-webpack-plugin

自動生成html插件
生成 HTML5 文件并注入 webpack 綁定的一系列 js & css壳猜,生成對應(yīng) <script><link> 標簽
https://github.com/ampedandwired/html-webpack-plugin

安裝
npm install html-webpack-plugin --save-dev
使用

web pack.config.js 中添加:

var HtmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {

    ...

     plugins: [

        ...
            new HtmlWebpackPlugin({
                filename: 'index.html',
                template:'./src/template.html',
                })
        ...

     ]

    ...

}

配置項

filename: 生成文件名稱勾徽,默認 index.html

template: 模版文件目錄及名稱

注意

此插件會受到 file-loader 的影響

編譯 ES6

安裝 loaders

安裝 babel-loader

npm install babel-loader --save-dev

安裝轉(zhuǎn)碼規(guī)則

npm install babel-preset-es2015 --save-dev

webpack.config.js 文件添加以下內(nèi)容

......
    module: {
        loaders: [
            ...

            { test: /\.jsx?$/,loader: 'babel-loader', query: {presets: ['es2015']}}

        ]
    },
    resolve:{
        extensions:['','.js','.jsx']
    },

......

擴展工具

atool-build

基于 webpack 構(gòu)建封裝
集成了一些常用的 loaders 與 plugins

安裝

npm i atool-build -g

參考

http://webpack.github.io/
http://ant-tool.github.io/

Fabs

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市统扳,隨后出現(xiàn)的幾起案子喘帚,更是在濱河造成了極大的恐慌,老刑警劉巖咒钟,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吹由,死亡現(xiàn)場離奇詭異,居然都是意外死亡朱嘴,警方通過查閱死者的電腦和手機倾鲫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來萍嬉,“玉大人级乍,你說我怎么就攤上這事≈阆妫” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵甚淡,是天一觀的道長大诸。 經(jīng)常有香客問我,道長贯卦,這世上最難降的妖魔是什么资柔? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮撵割,結(jié)果婚禮上贿堰,老公的妹妹穿的比我還像新娘。我一直安慰自己啡彬,他們只是感情好羹与,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著庶灿,像睡著了一般纵搁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上往踢,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天腾誉,我揣著相機與錄音,去河邊找鬼。 笑死利职,一個胖子當著我的面吹牛趣效,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播猪贪,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼跷敬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了哮伟?” 一聲冷哼從身側(cè)響起干花,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎楞黄,沒想到半個月后池凄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡鬼廓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年肿仑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碎税。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡尤慰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出雷蹂,到底是詐尸還是另有隱情伟端,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布匪煌,位于F島的核電站责蝠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏萎庭。R本人自食惡果不足惜霜医,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驳规。 院中可真熱鬧肴敛,春花似錦、人聲如沸吗购。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巩搏。三九已至昨登,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贯底,已是汗流浹背丰辣。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工撒强, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笙什。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓飘哨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親琐凭。 傳聞我的和親對象是個殘疾皇子芽隆,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

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

  • 版權(quán)聲明:本文為博主原創(chuàng)文章愁憔,未經(jīng)博主允許不得轉(zhuǎn)載腕扶。 webpack介紹和使用 一、webpack介紹 1吨掌、由來 ...
    it筱竹閱讀 11,050評論 0 21
  • GitChat技術(shù)雜談 前言 本文較長半抱,為了節(jié)省你的閱讀時間,在文前列寫作思路如下: 什么是 webpack膜宋,它要...
    蕭玄辭閱讀 12,679評論 7 110
  • 無意中看到zhangwnag大佬分享的webpack教程感覺受益匪淺窿侈,特此分享以備自己日后查看,也希望更多的人看到...
    小小字符閱讀 8,147評論 7 35
  • 最近在學習 Webpack,網(wǎng)上大多數(shù)入門教程都是基于 Webpack 1.x 版本的,我學習 Webpack 的...
    My_Oh_My閱讀 8,173評論 40 247
  • 兒子很喜歡踢足球,每周的學習訓(xùn)練課肛著,他玩的很開心〕巳浚現(xiàn)在孩子們的成長空間真是非常好啊。 想想我小時侯就是經(jīng)常爬山策泣,或...
    民哥_財富教練閱讀 508評論 0 1