JavaScript loader原理簡單總結(jié)示例解析
loader
- loader 其實(shí)就是一個(gè)函數(shù),會返回處理文件的結(jié)果
- 當(dāng)webpack解析資源時(shí),會調(diào)用相應(yīng)的loader 去處理 (從下往上,從右往左的順序調(diào)用)
// context 文件內(nèi)容 // map SourceMap (傳入SourceMap傳入的相關(guān)數(shù)據(jù)) // meta 其他loader 傳的參數(shù) module.exports = function (context,map,meta){ console.log(context return context }
同步loader
- 如果在同步loader中添加異步代碼 程序會報(bào)錯(cuò) The callback was already called( 已調(diào)用回調(diào) )再次調(diào)用 就會報(bào)錯(cuò)
// 第一種 module.exports = function (context,map,meta){ console.log(context) return context } // 第二種 (如有下一個(gè)loader 需要處理可以采用這種) module.exports = function (context,map,meta){ // 一個(gè)參數(shù) 如果有錯(cuò)誤信息,就傳錯(cuò)誤信息 如果沒有 就是null // context 文件內(nèi)容 // map SourceMap (傳入SourceMap傳入的相關(guān)數(shù)據(jù)) 繼續(xù)傳遞 SourceMap // meta 其他loader 傳的參數(shù) this.call(null, context, map, meta) }
異步loader
module.exports = function (context,map,meta){ const callback = this.async() setTimeout(()=>{ callback(null, context, map, meta) }, 1000) }
raw Loader
- raw loader接收的context 是 Buffer 數(shù)據(jù) (二進(jìn)制數(shù)據(jù))
- 同步loader 和 異步loader 都可以
- 需要 配置 module.exports.raw = true
module.exports = function loader(context,map,meta){ console.log(context) return context } module.exports.raw = true
pitch Loader
- pitch loader 中可以是異步loader 和 同步loader
- 需要暴露一個(gè) pitch方法
- 當(dāng)在 use 中設(shè)置多個(gè)loader時(shí), 執(zhí)行順序是 先執(zhí)行 pitch loader pitch loader 執(zhí)行完了會再執(zhí)行普通loader
module.exports = function loader(context,map,meta){ console.log(context) return context } module.exports.pitch = function (){ console.log(pitch) }
以上就是JavaScript loader原理簡單總結(jié)示例解析的詳細(xì)內(nèi)容,更多關(guān)于JavaScript loader原理總結(jié)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
requestAnimationFrame定時(shí)動畫屏幕刷新率節(jié)流示例淺析
這篇文章主要為大家介紹了requestAnimationFrame定時(shí)動畫屏幕刷新率節(jié)流示例淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02基于遷移學(xué)習(xí)的JS目標(biāo)檢測器構(gòu)建過程詳解
這篇文章主要為大家介紹了基于遷移學(xué)習(xí)的JS目標(biāo)檢測器構(gòu)建過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03微信公眾號 提示:Unauthorized API function 問題解決方法
這篇文章主要介紹了微信公眾號 提示:Unauthorized API function 問題解決方法的相關(guān)資料,這里提供了出現(xiàn)提示的解決方法,需要的朋友可以參考下2016-12-12JavaScript嚴(yán)格模式use strict的介紹
這篇文章主要介紹了JavaScript嚴(yán)格模式use strict,嚴(yán)格模式是JavaScript中的一種限制性更強(qiáng)的變種方式。嚴(yán)格模式并不是JavaScript中的子集,它在語義上與正常的代碼有明顯的差異,下面我們就一起來學(xué)習(xí)該內(nèi)容吧,需要的朋友也可以參考一下2021-12-12在微信小程序中渲染HTML內(nèi)容3種解決方案及分析與問題解決
在開發(fā)微信小程序時(shí)我們會在小程序內(nèi)加入純HTML代碼,且HTML中包括圖片,視頻,甚至是事件,微信小程序?yàn)槲覀兲峁┝?種解決方法,但它們的功能與實(shí)現(xiàn)方式與最終效果并不理想2020-01-01web?worker在項(xiàng)目中的使用學(xué)習(xí)為項(xiàng)目增加亮點(diǎn)
這篇文章主要為大家介紹了web?worker使用學(xué)習(xí)來為你的項(xiàng)目增加亮點(diǎn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07