<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuā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)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題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 類(lèi)似于其他構(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ù),然后添加到依賴(lài),按照方式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)推薦

        專(zhuān)題
        Top
        主站蜘蛛池模板: 亚洲视频免费在线观看| 久久久无码精品亚洲日韩软件 | 在线观看肉片AV网站免费| 亚洲JIZZJIZZ中国少妇中文| 免费国产va视频永久在线观看| 四虎影视永久免费观看网址| 看亚洲a级一级毛片| 亚洲偷自拍拍综合网| 国产免费人成视频在线播放播| 久久99亚洲综合精品首页| 久久国产乱子伦精品免费午夜| 亚洲人成77777在线播放网站| 免费无码又爽又刺激网站直播 | 亚洲乱码一二三四区国产| 免费无码黄十八禁网站在线观看| 亚洲精品国产精品| 亚洲国产一级在线观看| 中文字幕乱码免费看电影| 亚洲精品在线观看视频| 成视频年人黄网站免费视频| 精品无码专区亚洲| 国产亚洲精久久久久久无码77777| 中文字幕免费观看视频| 亚洲国产美女福利直播秀一区二区| 成人性生交大片免费看无遮挡 | v片免费在线观看| 亚洲AV午夜成人片| 歪歪漫画在线观看官网免费阅读 | 国产一级高清免费观看| 亚美影视免费在线观看| 久久精品国产亚洲av水果派| 在线观看人成网站深夜免费| CAOPORN国产精品免费视频| 亚洲va精品中文字幕| 亚洲乱码中文字幕综合234| 久久不见久久见免费视频7| 亚洲国产成人综合精品| 亚洲av综合色区| 日本高清免费网站| 久久久久久影院久久久久免费精品国产小说| 亚洲免费视频播放|