亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

webpack的pitching loader詳解

 更新時間:2019年09月23日 14:49:36   作者:此題無解灬  
這篇文章主要介紹了webpack的pitching loader詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

webpack中關于pitching loader的文檔比較不清楚:

The loaders are called from right to left. But in some cases loaders do not care about the results of the previous loader or the resource. They only care for metadata. The pitch method on the loaders is called from left to right before the loaders are called. If a loader delivers a result in the pitch method the process turns around and skips the remaining loaders, continuing with the calls to the more left loaders. data can be passed between pitch and normal call.

比如a!b!c!module, 正常調用順序應該是c、b、a,但是真正調用順序是
a(pitch)、b(pitch)、c(pitch)、c、b、a, 如果其中任何一個pitching loader返回了值就相當于在它以及它右邊的loader已經執(zhí)行完畢。

比如如果b返回了字符串"result b", 接下來只有a會被系統(tǒng)執(zhí)行,且a的loader收到的參數是result b。

也就是說pitching loader的初衷是為了提升效率,少執(zhí)行幾個loader。

然而這樣的機會并不多。更為常用的是它的另一個用途。

根據官方文檔:

In the complex case, when multiple loaders are chained, only the last loader gets the resource file and only the first loader is expected to give back one or two values (JavaScript and SourceMap). Values that any other loader give back are passed to the previous loader.

loader根據返回值可以分為兩種,一種是返回js代碼(一個module的代碼,含有類似module.export語句)的loader,還有不能作為最左邊loader的其他loader

問題是有時候我們想把兩個第一種loader chain起來,比如style-loader!css-loader!

問題是css-loader的返回值是一串js代碼,如果按正常方式寫style-loader的參數就是一串代碼字符串。就算eval了也不一定拿到什么值

eval('module.export="result";console.log("hello world")') === "hello world"

為了解決這種問題,我們需要在style-loader里執(zhí)行require(css-loader!resouce), 這會把css-loader跑一遍,也就是說如果按正常順序執(zhí)行css-loader會跑兩遍(第一遍拿到的js代碼用不了), 為了只執(zhí)行一次,style-loader利用了pitching, 在pitching函數里require(css-loader!resouce)。然后返回js代碼(style-loader能夠作為最左邊loader)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • JavaScript 變量作用域及閉包

    JavaScript 變量作用域及閉包

    作用域JavaScript 的變量作用域是按照函數劃分的,為了快速的了解它的特性,我們通過實例來進行演示。
    2009-08-08
  • 簡單的防盜鏈功能代碼(iframe)

    簡單的防盜鏈功能代碼(iframe)

    簡單的防盜鏈功能代碼(iframe)...
    2006-08-08
  • javascript中時區(qū)知識的整理UTC GMT問題

    javascript中時區(qū)知識的整理UTC GMT問題

    這篇文章主要介紹了javascript中時區(qū)知識的整理UTC GMT問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 微信小程序實現圖片上傳放大預覽刪除代碼

    微信小程序實現圖片上傳放大預覽刪除代碼

    這篇文章主要為大家詳細介紹了微信小程序實現圖片上傳放大預覽刪除代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 正則表達式在js前端的15個使用場景梳理總結

    正則表達式在js前端的15個使用場景梳理總結

    本篇帶來15個正則使用場景,按需索取,收藏恒等于學會?。∮行枰呐笥芽梢越梃b參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • JS trim去空格的最佳實踐

    JS trim去空格的最佳實踐

    學習框架的我,又來了??吹?String 對象擴展這一部分,對 trim() 這個經常被來來說的方法比較感興趣
    2011-10-10
  • js中關于base64編碼的問題

    js中關于base64編碼的問題

    這篇文章主要介紹了js中關于base64編碼的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • JS實現的倒計時恢復按鈕點擊功能【可用于協(xié)議閱讀倒計時】

    JS實現的倒計時恢復按鈕點擊功能【可用于協(xié)議閱讀倒計時】

    這篇文章主要介紹了JS實現的倒計時恢復按鈕點擊功能,可用于協(xié)議閱讀倒計時,涉及javascript基于setInterval的時間定時觸發(fā)相關操作技巧,需要的朋友可以參考下
    2018-04-04
  • JavaScript中Promise的使用詳解

    JavaScript中Promise的使用詳解

    Promise,相信每一個前端工程師都或多或少地在項目中都是用過,畢竟它早已不是一個新名詞。ES6中已經原生對它加以支持,在caniuse中搜索一下 Promise ,發(fā)現新版的chrome和firefox也已經支持。但是低版本的瀏覽器我們可以使用 es6-promise 這個 polyfill 庫來加以兼容。
    2017-02-02
  • 火狐textarea輸入法的bug的觸發(fā)及解決

    火狐textarea輸入法的bug的觸發(fā)及解決

    在firefox中,如果一個textarea獲取焦點,在輸入法激活的狀態(tài)如果這時js將該textarea的value修改,那么該textarea會直接被清空,下面是具體的解決方法,遇到類似問題的朋友可以參考下
    2013-07-07

最新評論