国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

怎樣使用webpack源碼loader機(jī)制

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 19:45:27
文檔

怎樣使用webpack源碼loader機(jī)制

怎樣使用webpack源碼loader機(jī)制:這次給大家?guī)?lái)怎樣使用webpack源碼loader機(jī)制,怎樣使用webpack源碼loader機(jī)制的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。loader概念loader是用來(lái)加載處理各種形式的資源,本質(zhì)上是一個(gè)函數(shù), 接受文件作為參數(shù),返回轉(zhuǎn)化后的結(jié)構(gòu)。loader 用
推薦度:
導(dǎo)讀怎樣使用webpack源碼loader機(jī)制:這次給大家?guī)?lái)怎樣使用webpack源碼loader機(jī)制,怎樣使用webpack源碼loader機(jī)制的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。loader概念loader是用來(lái)加載處理各種形式的資源,本質(zhì)上是一個(gè)函數(shù), 接受文件作為參數(shù),返回轉(zhuǎn)化后的結(jié)構(gòu)。loader 用

這次給大家?guī)?lái)怎樣使用webpack源碼loader機(jī)制,怎樣使用webpack源碼loader機(jī)制的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。

loader概念

loader是用來(lái)加載處理各種形式的資源,本質(zhì)上是一個(gè)函數(shù), 接受文件作為參數(shù),返回轉(zhuǎn)化后的結(jié)構(gòu)。

loader 用于對(duì)模塊的源代碼進(jìn)行轉(zhuǎn)換。loader 可以使你在 import 或"加載"模塊時(shí)預(yù)處理文件。因此,loader 類似于其他構(gòu)建工具中“任務(wù)(task)”,并提供了處理前端構(gòu)建步驟的強(qiáng)大方法。loader 可以將文件從不同的語(yǔ)言(如 TypeScript)轉(zhuǎn)換為 JavaScript,或?qū)?nèi)聯(lián)圖像轉(zhuǎn)換為 data URL。loader 甚至允許你直接在 JavaScript 模塊中 import CSS文件!

loader和plugin區(qū)別

之前一篇文章中介紹了plugin機(jī)制,和今天研究的對(duì)象loader,他們兩者在一起極大的拓展了webpack的功能。它們的區(qū)別就是loader是用來(lái)對(duì)模塊的源代碼進(jìn)行轉(zhuǎn)換,而插件目的在于解決 loader 無(wú)法實(shí)現(xiàn)的其他事。為什么這么多說(shuō)呢?因?yàn)閜lugin可以在任何階段調(diào)用,能夠跨Loader進(jìn)一步加工Loader的輸出,在構(gòu)建運(yùn)行期間,觸發(fā)事件,執(zhí)行預(yù)先注冊(cè)的回調(diào),使用compilation對(duì)象做一些更底層的事情。

loader用法

配置

module: {
 rules: [
 {
 test: /\.css$/,
 use: [
 { loader: 'style-loader' },
 {
 loader: 'css-loader'
 }
 ]
 }
 ]
 }

內(nèi)聯(lián)

import Styles from 'style-loader!css-loader?modules!./styles.css';

CLI

webpack --module-bind 'css=style-loader!css-loader'

說(shuō)明 上面三種使用方法作用都是將一組鏈?zhǔn)降?loader, 按照從右往左的順序執(zhí)行,loader 鏈中的第一個(gè) loader 返回值給下一個(gè) loader。先使用css-loader解析 @import 和 url()路徑中指定的css內(nèi)容,然后用style-loader 會(huì)把原來(lái)的 CSS 代碼插入頁(yè)面中的一個(gè) style 標(biāo)簽中。

loader實(shí)現(xiàn)

//將css插入到head標(biāo)簽內(nèi)部
module.exports = function (source) {
 let script = (`
 let style = document.createElement("style");
 style.innerText = ${JSON.stringify(source)};
 document.head.appendChild(style);
 `);
 return script;
}
//使用方式1
resolveLoader: {
 modules: [path.resolve('node_modules'), path.resolve(__dirname, 'src', 'loaders')]
},
{
 test: /\.css$/,
 use: ['style-loader']
},
//使用方式2
//將自己寫(xiě)的loaders發(fā)布到npm倉(cāng)庫(kù),然后添加到依賴,按照方式1中的配置方式使用即可

說(shuō)明 上面是一個(gè)簡(jiǎn)單的loader實(shí)現(xiàn),同步的方式執(zhí)行,相當(dāng)于實(shí)現(xiàn)了style-loader的功能。

loader原理

function iteratePitchingLoaders(options, loaderContext, callback) {
 var currentLoaderObject = loaderContext.loaders[loaderContext.loaderIndex];
 // load loader module
 loadLoader(currentLoaderObject, function(err) {
 var fn = currentLoaderObject.pitch;
 runSyncOrAsync(
 fn,
 loaderContext, [loaderContext.remainingRequest, loaderContext.previousRequest, currentLoaderObject.data = {}],
 function(err) {
 if(err) return callback(err);
 var args = Array.prototype.slice.call(arguments, 1);
 if(args.length > 0) {
 loaderContext.loaderIndex--;
 iterateNormalLoaders(options, loaderContext, args, callback);
 } else {
 iteratePitchingLoaders(options, loaderContext, callback);
 }
 }
 );
 });
}

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注Gxl網(wǎng)其它相關(guān)文章!

推薦閱讀:

怎樣在Vue中使用Sortable

如何使用JS實(shí)現(xiàn)運(yùn)算符重載

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

怎樣使用webpack源碼loader機(jī)制

怎樣使用webpack源碼loader機(jī)制:這次給大家?guī)?lái)怎樣使用webpack源碼loader機(jī)制,怎樣使用webpack源碼loader機(jī)制的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。loader概念loader是用來(lái)加載處理各種形式的資源,本質(zhì)上是一個(gè)函數(shù), 接受文件作為參數(shù),返回轉(zhuǎn)化后的結(jié)構(gòu)。loader 用
推薦度:
標(biāo)簽: 如何 lo 機(jī)制
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專題
Top
主站蜘蛛池模板: 欧美日本韩国一区二区 | 四虎精品成人a在线观看 | 欧美久久天天综合香蕉伊 | 91精品成人免费国产 | 国产呦系列 欧美呦 日韩呦 | 图片区 日韩 欧美 亚洲 | 日韩有码在线播放 | 亚洲欧美二区三区久本道 | 欧美成人精品一区二区三区 | 亚洲一区二区在线成人 | 亚洲欧美一 | 一级毛片成人免费看a | 99久久久国产精品免费 | 亚洲欧美另类在线 | 国产精品免费观看网站 | 欧美色爽 | 日本a级精品一区二区三区 日本不卡视频一区二区三区 | 日韩视频高清 | 亚洲欧美激情另类 | 国产成人欧美一区二区三区的 | 毛片网此 | 中文字幕日韩一区二区三区不卡 | 国产成人精品免费视 | 欧美另类一区 | 国产精品免费视频播放 | 欧美 日韩 国产在线 | 亚洲色图欧美自拍 | 欧美亚洲精品在线 | 夜夜操夜夜 | 国产午夜电影在线观看 | 亚洲综合日韩在线亚洲欧美专区 | 欧美xxx在线观看 | 国产不卡在线视频 | 国产精选在线观看 | 在线国产高清 | 亚洲国产精久久久久久久 | 欧美色图中文字幕 | 看全色黄大色黄女片爽毛片 | 视频精品一区二区 | 亚洲欧美日韩中文字幕一区二区三区 | 亚洲欧洲在线视频 |