webpack?loader使用的安裝配置
引言
本節(jié)我們來(lái)學(xué)習(xí) webpack
中 loader
加載器的使用,那么什么是 loader
呢。從本質(zhì)上來(lái)說(shuō),loader
就是一個(gè) Node.js 模塊,在 webpack
的定義中,loader
導(dǎo)出一個(gè)函數(shù),loader 會(huì)在轉(zhuǎn)換源模塊的時(shí)候調(diào)用該函數(shù)。
webpack
本身依然是只能處理 JS 文件的,但是通過(guò)一系列的 loader
,就可以處理其他文件啦。例如 Less
和 Sass
,以前我們編譯這些 CSS 預(yù)處理器,需要使用 gulp
進(jìn)行編譯,而顯示可以通過(guò) webpack
中的 loader
加載器來(lái)實(shí)現(xiàn)。
常見(jiàn)loader
webpack
中有一系列的 loader
,在實(shí)際項(xiàng)目中,我們會(huì)根據(jù)不同的需求使用到不同的 loader
。例如 webpack
中的一些常見(jiàn) loader
如下所示:
css-loader
: 用于處理css
文件,使得能在js
文件中引入使用。style-loader
: 用于將css
文件注入到index.html
中的<style>
標(biāo)簽上。less-loader
:處理less
代碼。sass-loader
: 處理sass
代碼。postcss-loader
:用postcss
來(lái)處理 CSS代碼。babel-loader
:用babel
來(lái)轉(zhuǎn)換 ES6 文件到 ES5。file-loader
:打包圖片,打包字體圖標(biāo)。url-loader
:和file-loader
類(lèi)似,但是當(dāng)文件小于設(shè)定的limit
時(shí),可以返回一個(gè)DataUrl
(提升網(wǎng)頁(yè)性能)。html-withimg-loader
:打包 HTML 文件中的圖片。eslint-loader
:用于檢查常見(jiàn)的 JavaScript 代碼錯(cuò)誤,也可以進(jìn)行"代碼規(guī)范"檢查。
loader的安裝和配置
我們可以在 webpack.config.js
配置文件中配置 loader
,可以在 module.rules
中指定一個(gè)或多個(gè) loader
。
通過(guò)配置loader
的兩個(gè)屬性來(lái)實(shí)現(xiàn):
test
屬性:用來(lái)標(biāo)識(shí)出應(yīng)該被對(duì)應(yīng)的loader
進(jìn)行轉(zhuǎn)換的某個(gè)或多個(gè)文件。use
屬性:表示轉(zhuǎn)換時(shí)要用哪個(gè)loader
。
示例:
例如默認(rèn)情況下 webpack
只能打包 JS 文件,不能識(shí)別其他例如 CSS、Less、image等類(lèi)型的文件,那么如果我們想要打包 CSS 樣式文件,可以在 webpack
中使用 loader
加載器,可以將一種文件轉(zhuǎn)換為另一種文件,將webpack
不能識(shí)別的其它類(lèi)型文件轉(zhuǎn)換為 webpack
可識(shí)別 JS 類(lèi)型文件。
首先需要安裝 style-loader
和 css-loader
,安裝命令如下所示:
npm install css-loader style-loader --save-dev
命令執(zhí)行成功后,這兩個(gè) loader
會(huì)自動(dòng)添加到 package.json
的依賴(lài)中,如下所示:
"devDependencies": { "css-loader": "^3.6.0", "style-loader": "^1.2.1", "webpack": "^4.43.0", "webpack-dev-server": "^3.11.0" }
然后在 webpack.config.js
中配置 loader
,在 module
屬性的 rule
屬性中配置 loader
規(guī)則:
module:{ rules:[{ test:/.css$/, use:['style-loader','css-loader'] }] }
這里表示匹配所有 .css
后綴結(jié)尾的文件,通過(guò) style-loader
和 css-loader
加載器進(jìn)行轉(zhuǎn)換后再編譯。
然后我們創(chuàng)建一個(gè) xkd.css
文件,內(nèi)容如下所示:
p{ font-size: 12px; color: red; }
并將 xkd.css
文件導(dǎo)入到 index.js
入口文件中:
document.write('你好,俠課島!'); // 導(dǎo)入 CSS 文件 import "./xkd.css";
然后我們執(zhí)行打包命令后會(huì)重新生成打包文件,會(huì)發(fā)現(xiàn) xkd.css
文件也成功打包到 bundle.js
文件中。
這就是 loader
的基本使用流程,先安裝loader
,然后在配置文件中配置 loader
,最后再進(jìn)行打包就可以啦。
loader 特性
loader
支持鏈?zhǔn)秸{(diào)用,鏈中的每個(gè)loader
會(huì)將轉(zhuǎn)換應(yīng)用在已處理過(guò)的資源上。一組鏈?zhǔn)降?nbsp;loader
將按照相反的順序執(zhí)行。鏈中的第一個(gè)loader
將其結(jié)果傳遞給下一個(gè)loader
,依此類(lèi)推。loader
可以是同步的,也可以是異步的。loader
運(yùn)行在 Node.js 中,并且能夠執(zhí)行任何操作。loader
也可以?xún)?nèi)聯(lián)顯示指定。loader
可以通過(guò)options
對(duì)象配置。
除了常見(jiàn)的通過(guò) package.json
的 main
來(lái)將一個(gè) npm
模塊導(dǎo)出為 loader
,還可以在 module.rules
中使用 loader
字段直接引用一個(gè)模塊。
插件(plugin)可以為 loader
帶來(lái)更多特性。
loader
能夠產(chǎn)生額外的任意文件。
以上就是webpack loader使用的安裝配置的詳細(xì)內(nèi)容,更多關(guān)于webpack loader安裝配置的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
iis6+javascript Add an Extension File
iis6+javascript Add an Extension File...2007-06-06js CSS3實(shí)現(xiàn)卡牌旋轉(zhuǎn)切換效果
這篇文章主要為大家詳細(xì)介紹了js CSS3實(shí)現(xiàn)卡牌旋轉(zhuǎn)切換效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07JavaScript判斷變量數(shù)據(jù)類(lèi)型的常見(jiàn)方法小結(jié)
在JavaScript開(kāi)發(fā)中,了解和判斷變量的數(shù)據(jù)類(lèi)型是編寫(xiě)健壯代碼的基礎(chǔ),變量的類(lèi)型可以在運(yùn)行時(shí)改變,這為開(kāi)發(fā)者帶來(lái)了靈活性的同時(shí)也增加了復(fù)雜性,本文將深入探討幾種常見(jiàn)的判斷變量類(lèi)型的技巧,并結(jié)合實(shí)際案例進(jìn)行分析,需要的朋友可以參考下2024-12-12getElementByIdx_x js自定義getElementById函數(shù)
最近看JS代碼,發(fā)現(xiàn)不少人問(wèn)getElementByIdx_x是什么函數(shù),其實(shí)就是個(gè)getElementById自定義函數(shù)2012-01-01ECharts?formatter屬性設(shè)置的3種方法(字符串模板,函數(shù)模板,回調(diào)函數(shù))
formatter有兩種寫(xiě)法,一種字符串模板,另一種是回調(diào)函數(shù),下面這篇文章主要給大家介紹了關(guān)于ECharts?formatter屬性設(shè)置的3種方法,分別是字符串模板,函數(shù)模板,回調(diào)函數(shù),需要的朋友可以參考下2023-02-02