webpack1.xx之loader

1. 什么是loader(加載器)

Loader 可以理解為是模塊和資源的轉(zhuǎn)換器,它本身是一個函數(shù),接受源文件作為參數(shù)随夸,返回轉(zhuǎn)換的結(jié)果靖避。這樣潭枣,我們就可以通過 require 來加載任何類型的模塊或文件比默,比如 CoffeeScript、 JSX盆犁、 LESS 或圖片命咐。

2. loader features
  1. Loader 可以通過管道方式鏈?zhǔn)秸{(diào)用,每個 loader 可以把資源轉(zhuǎn)換成任意格式并傳遞給下一個 loader 谐岁,但是最后一個 loader 必須返回 JavaScript醋奠。
  2. Loader 可以同步或異步執(zhí)行。
  3. Loader 運行在 node.js 環(huán)境中伊佃,所以可以做任何可能的事情窜司。
  4. Loader 可以接受參數(shù),以此來傳遞配置項給 loader航揉。
  5. Loader 可以通過文件擴(kuò)展名(或正則表達(dá)式)綁定給不同類型的文件塞祈。
  6. loader在配置上可以綁定extensions/ RegExps。
  7. loader可以通過npm出版/安裝帅涂。
  8. 除了通過 package.json 的 main 指定议薪,通常的模塊也可以導(dǎo)出一個 loader 來使用。
  9. Loader 可以訪問配置漠秋。
  10. 插件可以讓 loader 擁有更多特性笙蒙。
  11. Loader 可以分發(fā)出附加的任意文件。
3. 解析loader

Loader 本身也是運行在 node.js 環(huán)境中的 JavaScript 模塊庆锦,它通常會返回一個函數(shù)捅位。大多數(shù)情況下,我們通過 npm 來管理 loader搂抒,但是你也可以在項目中自己寫 loader 模塊艇搀。

4. 引用loader
  • 按照慣例,雖然不是必需的,加載器通常命名為XXX-loader,XXX是上下文的名稱。例如,json-loader求晶。
  • 你可以以完整的名稱如:json-loader來引用loader,或者使用簡寫名稱焰雕,例如:json。
5. 安裝loader
$ npm install xxx-loader --save

or

$ npm install xxx-loader --save-dev
6. loader 使用

有很多方法在你的應(yīng)用程序里面使用loader芳杏。

  • Loader 可以在 require() 引用模塊的時候添加
  • webpack 全局配置中進(jìn)行綁定
  • 通過命令行配置

分別說說按照上述方法來使用loader

6.1 loaders in require (盡量不要用這種形式)

我們可以在require語句里面使用loaders矩屁。并且我們可以使用 ! 來隔開一個個不同的加載器。

//使用文件當(dāng)前目錄下的 loader.js 來處理 dir文件下面的 file.txt文件爵赵。
require("./loader!./dir/file.txt"); 

//使用npm安裝的加載器 jade-loader 處理 文件吝秕。
require("jade!./template.jade");

轉(zhuǎn)換bootstrap.less  通過less-loader-->css-loadre--->style-loader
require("!style!css!less!bootstrap/less/bootstrap.less");

注意:當(dāng)拼接多個loader時,是從右邊向左執(zhí)行的空幻。

6.2 configuration

可以將loader與正則結(jié)合來配置使用烁峭。

{
    module: {
        loaders: [
            { test: /\.jade$/, loader: "jade" },
            // => "jade" loader is used for ".jade" files

            { test: /\.css$/, loader: "style!css" },
            // => "style" and "css" loader is used for ".css" files
            // Alternative syntax:
            { test: /\.css$/, loaders: ["style", "css"] },
        ]
    }
}
6.3 CLI
$ webpack --module-bind jade --module-bind 'css=style!css'

7. 參數(shù)

類似web頁面?zhèn)鲄?shù)
注意:參數(shù)的格式又對應(yīng)的loader決定,具體需要參照loader對應(yīng)的文檔。

1. require("url-loader?mimetype=image/png!./file.png");

2. { test: /\.png$/, loader: "url-loader?mimetype=image/png" }
or
{
    test: /\.png$/,
    loader: "url-loader",
    query: { mimetype: "image/png" }
}

3. webpack --module-bind "png=url-loader?mimetype=image/png"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末约郁,一起剝皮案震驚了整個濱河市缩挑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鬓梅,老刑警劉巖供置,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異绽快,居然都是意外死亡士袄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門谎僻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娄柳,“玉大人,你說我怎么就攤上這事艘绍〕嗑埽” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵诱鞠,是天一觀的道長挎挖。 經(jīng)常有香客問我,道長航夺,這世上最難降的妖魔是什么蕉朵? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮阳掐,結(jié)果婚禮上始衅,老公的妹妹穿的比我還像新娘。我一直安慰自己缭保,他們只是感情好汛闸,可當(dāng)我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著艺骂,像睡著了一般诸老。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钳恕,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天别伏,我揣著相機(jī)與錄音,去河邊找鬼忧额。 笑死厘肮,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宙址。 我是一名探鬼主播轴脐,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼调卑,長吁一口氣:“原來是場噩夢啊……” “哼抡砂!你這毒婦竟也來了大咱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤注益,失蹤者是張志新(化名)和其女友劉穎碴巾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丑搔,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡厦瓢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了啤月。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片煮仇。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谎仲,靈堂內(nèi)的尸體忽然破棺而出浙垫,到底是詐尸還是另有隱情,我是刑警寧澤郑诺,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布夹姥,位于F島的核電站,受9級特大地震影響辙诞,放射性物質(zhì)發(fā)生泄漏辙售。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一飞涂、第九天 我趴在偏房一處隱蔽的房頂上張望旦部。 院中可真熱鬧,春花似錦较店、人聲如沸志鹃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽曹铃。三九已至,卻和暖如春捧杉,著一層夾襖步出監(jiān)牢的瞬間陕见,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工味抖, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留评甜,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓仔涩,卻偏偏與公主長得像忍坷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,562評論 2 349

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理佩研,服務(wù)發(fā)現(xiàn)柑肴,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 無意中看到zhangwnag大佬分享的webpack教程感覺受益匪淺旬薯,特此分享以備自己日后查看晰骑,也希望更多的人看到...
    小小字符閱讀 8,147評論 7 35
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,796評論 25 707
  • 我不說你也知道硕舆, 世界有多好。因為你有多好骤公, 世界就有多好抚官。 你不說我也知道, 夢想有多好阶捆。因為我做的多好耗式, 夢想...
    淺得塾心靈文畫閱讀 328評論 3 5
  • 是時候為今天種下的好種子澆水施肥了。近期目標(biāo)是讓老公位于鄭州市中原路前進(jìn)路交叉口西北角的三沙灣酒店趁猴,員工穩(wěn)定刊咳,結(jié)合...
    金剛家人閱讀 104評論 0 0