轉(zhuǎn)載請注明出處: 葡萄城官網(wǎng) ,葡萄城為開發(fā)者提供專業(yè)的開發(fā)工具、解決方案和服務(wù),賦能開發(fā)者。
原文出處: https://wanago.io/2018/07/16/webpack-4-course-part-two-webpack-4-course-part-two-loaders/
今天繼續(xù)我們的Webpack 4入門教程。在介紹了Webpack的基本概念之后,是時候更深入一點了。這次我們會涉及Webpack中非常強(qiáng)大的一個東西:loader。首先,我們會學(xué)習(xí)如何使用那些可用的loader。它將包括如何處理css、scss、圖片以及對老版本的JavaScript語言的轉(zhuǎn)換。讓我們開始吧!
創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網(wǎng)定制,做網(wǎng)站、成都做網(wǎng)站,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。
在 之前的教程 ,我說Webpack是一個打包器。但這不是它僅有的目的。雖然Webpack天生只能理解JavaScript文件,但可以利用loader來改變這一點。除了能夠處理多種類型的文件,Webpack還能修改它們。
使用loader最好的方式是在 webpack.config.js
文件中指定它們。要這么做,你需要添加 module.rules
屬性。
css-loader
能夠翻譯引入的css文件。
npm install css-loader
考慮如下的配置
// webpack.config.js module.exports = { module: { rules: [ { test: /\.css$/, use: 'css-loader' } ] } };
rules 這個屬性是一個數(shù)組,指明你的各個loader。它會作用于匹配到 test 屬性所指定規(guī)則的每一個文件。這個規(guī)則,實際上,是一個正則表達(dá)式。
屬性 use 指明需要對匹配的文件應(yīng)用那個loader。
有了上面的代碼,你就能夠在你的JavaScript代碼中導(dǎo)入css文件了。(例如,使用 之前我們提到的ES6模塊 )
但這還不能讓css真正生效。我們需要一種方法讓瀏覽器能夠使用這些css。這種情況下, style-loader
就派上用場了。
npm install style-loader
但那就意味著要對css文件使用兩個loader。你可以通過串聯(lián)多個loader(chaining loaders)來使它們都生效。
// webpack.config.js module.exports = { module: { rules: [ { test: /\.css$/, use: ['style-loader', 'css-loader'] } ] }, }
你可以看到,我們給了 use 屬性一個數(shù)組。一個非常重要的注意點是,串聯(lián)執(zhí)行的順序是反向的(譯者注:也就是從右往左)。
/* style.css */ body { background-color:black; } // index.js import './style.css'
使用上面的配置,打包的工作方式大概是:
Webpack嘗試解析 style.css 文件
文件名與正則表達(dá)式 /\.css$/
匹配
文件被 css-loader 編譯
css-loader 處理后的結(jié)果會被傳到 style-loader
最后, style-loader 返回一串JavaScript代碼
默認(rèn)情況下,打包后的輸出是 ./dist/bundle.js
?,F(xiàn)在,這個文件包含的代碼會把所有的樣式插入到