webpack插件(plugins)

插件 是webpack的backbone . webpack本身就是構(gòu)建在一個(gè)同樣的插件系統(tǒng) ,正如你使用的webpack配置一樣!

插件也為了實(shí)現(xiàn)加載器不能實(shí)現(xiàn)的其他任何功能奉狈。.

剖析

一個(gè)webpack 插件是一個(gè)擁有 apply 屬性的JavaScript對(duì)象跌宛。這個(gè)apply屬性被webpack編譯器調(diào)用工育,提供給整個(gè)編譯生命周期訪問.

ConsoleLogOnBuildWebpackPlugin.js

function ConsoleLogOnBuildWebpackPlugin() {

};

ConsoleLogOnBuildWebpackPlugin.prototype.apply = function(compiler) {
  compiler.plugin('run', function(compiler, callback) {
    console.log("The webpack build process is starting!!!");

    callback();
  });
};

作為一個(gè)JavaScript開發(fā)人員,你可能還記得Function.prototype.apply方法。 因?yàn)檫@個(gè)方法你可以傳遞任何函數(shù)作為插件(this將指向`編譯器')呜师。 您可以使用此方式在配置中內(nèi)置自定義插件蓄愁。

用法

插件 可以帶入arguments/options双炕,你必須傳遞一個(gè)new實(shí)例到你的webpack配置的plugins屬性中。

根據(jù)您使用webpack的方式撮抓,有多種方式使用插件妇斤。

配置

webpack.config.js

const HtmlWebpackPlugin = require('html-webpack-plugin'); //installed via npm
const webpack = require('webpack'); //to access built-in plugins
const path = require('path');

const config = {
  entry: './path/to/my/entry/file.js',
  output: {
    filename: 'my-first-webpack.bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        loader: 'babel-loader'
      }
    ]
  },
  plugins: [
    new webpack.optimize.UglifyJsPlugin(),
    new HtmlWebpackPlugin({template: './src/index.html'})
  ]
};

module.exports = config;

Node API

即使使用Node API,用戶也應(yīng)該通過配置中的plugins屬性傳遞插件丹拯。 使用compiler.apply不是推薦的方法站超。

some-node-script.js

  const webpack = require('webpack'); //to access webpack runtime
  const configuration = require('./webpack.config.js');

  let compiler = webpack(configuration);
  compiler.apply(new webpack.ProgressPlugin());

  compiler.run(function(err, stats) {
    // ...
  });

你知道么: 上面看到的例子與webpack runtime是非常類似的!乖酬。有很多很好的使用示例隱藏在webpack源代碼 中死相,你可以應(yīng)用到自己的配置和腳本!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末咬像,一起剝皮案震驚了整個(gè)濱河市算撮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌县昂,老刑警劉巖肮柜,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異倒彰,居然都是意外死亡审洞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門待讳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芒澜,“玉大人仰剿,你說我怎么就攤上這事〕栈蓿” “怎么了南吮?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)阅酪。 經(jīng)常有香客問我旨袒,道長(zhǎng),這世上最難降的妖魔是什么术辐? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任砚尽,我火速辦了婚禮,結(jié)果婚禮上辉词,老公的妹妹穿的比我還像新娘必孤。我一直安慰自己,他們只是感情好瑞躺,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布敷搪。 她就那樣靜靜地躺著,像睡著了一般幢哨。 火紅的嫁衣襯著肌膚如雪赡勘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天捞镰,我揣著相機(jī)與錄音闸与,去河邊找鬼。 笑死岸售,一個(gè)胖子當(dāng)著我的面吹牛践樱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播凸丸,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼拷邢,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了屎慢?” 一聲冷哼從身側(cè)響起瞭稼,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎腻惠,沒想到半個(gè)月后弛姜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妖枚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苍在。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绝页。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荠商,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出续誉,到底是詐尸還是另有隱情莱没,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布酷鸦,位于F島的核電站饰躲,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏臼隔。R本人自食惡果不足惜嘹裂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望摔握。 院中可真熱鬧寄狼,春花似錦、人聲如沸氨淌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盛正。三九已至删咱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間豪筝,已是汗流浹背痰滋。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留壤蚜,地道東北人即寡。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像袜刷,于是被迫代替她去往敵國和親聪富。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

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

  • GitChat技術(shù)雜談 前言 本文較長(zhǎng)著蟹,為了節(jié)省你的閱讀時(shí)間墩蔓,在文前列寫作思路如下: 什么是 webpack,它要...
    蕭玄辭閱讀 12,671評(píng)論 7 110
  • 無意中看到zhangwnag大佬分享的webpack教程感覺受益匪淺萧豆,特此分享以備自己日后查看奸披,也希望更多的人看到...
    小小字符閱讀 8,140評(píng)論 7 35
  • webpack 有著豐富的插件接口(rich plugin interface)。webpack 自身的多數(shù)功能都...
    milletmi閱讀 2,193評(píng)論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理涮雷,服務(wù)發(fā)現(xiàn)阵面,斷路器,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • This afternoon I will go to Beijing for training. I will ...
    西西冒泡閱讀 301評(píng)論 0 0