JavaScript loader原理简单总结示例解析

 更新时间:2023年08月25日 11:22:44   作者:loong  
这篇文章主要为大家介绍了JavaScript loader原理简单总结示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

loader

  • loader 其实就是一个函数,会返回处理文件的结果
  • 当webpack解析资源时,会调用相应的loader 去处理 (从下往上,从右往左的顺序调用)
// context 文件内容
// map SourceMap (传入SourceMap传入的相关数据)
// meta 其他loader 传的参数
module.exports = function (context,map,meta){
    console.log(context
    return context
}

同步loader

  • 如果在同步loader中添加异步代码 程序会报错 The callback was already called( 已调用回调 )再次调用 就会报错
// 第一种
module.exports = function (context,map,meta){
    console.log(context)
    return context
}
// 第二种  (如有下一个loader 需要处理可以采用这种)
module.exports = function (context,map,meta){
    // 一个参数  如果有错误信息,就传错误信息  如果没有  就是null
    // context 文件内容
    // map SourceMap (传入SourceMap传入的相关数据) 继续传递 SourceMap
    // meta 其他loader 传的参数
    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 数据 (二进制数据)
  • 同步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
  • 需要暴露一个 pitch方法
  • 当在 use 中设置多个loader时, 执行顺序是 先执行 pitch loader pitch loader 执行完了会再执行普通loader
module.exports = function loader(context,map,meta){
    console.log(context)
    return context
}
module.exports.pitch = function (){
    console.log(pitch)
}

以上就是JavaScript loader原理简单总结示例解析的详细内容,更多关于JavaScript loader原理总结的资料请关注脚本之家其它相关文章!

相关文章

  • 为什么我们要做三份 Webpack 配置文件

    为什么我们要做三份 Webpack 配置文件

    前端从开发到部署前都离不开 Webpack 的参与,本文结合了我们自己在开发中碰到的种种问题解决方案,同时借鉴了很多开源项目的配置来介绍一种用 3 个 JS 文件来配置 Webpack 的方法。
    2017-09-09
  • requestAnimationFrame定时动画屏幕刷新率节流示例浅析

    requestAnimationFrame定时动画屏幕刷新率节流示例浅析

    这篇文章主要为大家介绍了requestAnimationFrame定时动画屏幕刷新率节流示例浅析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 基于迁移学习的JS目标检测器构建过程详解

    基于迁移学习的JS目标检测器构建过程详解

    这篇文章主要为大家介绍了基于迁移学习的JS目标检测器构建过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 微信公众号  提示:Unauthorized API function 问题解决方法

    微信公众号 提示:Unauthorized API function 问题解决方法

    这篇文章主要介绍了微信公众号 提示:Unauthorized API function 问题解决方法的相关资料,这里提供了出现提示的解决方法,需要的朋友可以参考下
    2016-12-12
  • JavaScript严格模式use strict的介绍

    JavaScript严格模式use strict的介绍

    这篇文章主要介绍了JavaScript严格模式use strict,严格模式是JavaScript中的一种限制性更强的变种方式。严格模式并不是JavaScript中的子集,它在语义上与正常的代码有明显的差异,下面我们就一起来学习该内容吧,需要的朋友也可以参考一下
    2021-12-12
  • 打包非 JavaScript 静态资源详情

    打包非 JavaScript 静态资源详情

    这篇文章主要介绍了打包非 JavaScript 静态资源,打包工具中的自定义导入,种常见的方法是利用已有的静态导入语法。有些打包工具可能会通过文件扩展名来自动检测格式,而有些其他打包工具则允许插件使用自定义的 URL Scheme,下面具体内举例说明,需要的朋友可以参考一下
    2021-10-10
  • 超级强大的表单验证

    超级强大的表单验证

    超级强大的表单验证...
    2006-06-06
  • 在微信小程序中渲染HTML内容3种解决方案及分析与问题解决

    在微信小程序中渲染HTML内容3种解决方案及分析与问题解决

    在开发微信小程序时我们会在小程序内加入纯HTML代码,且HTML中包括图片,视频,甚至是事件,微信小程序为我们提供了3种解决方法,但它们的功能与实现方式与最终效果并不理想
    2020-01-01
  • web worker在项目中的使用学习为项目增加亮点

    web worker在项目中的使用学习为项目增加亮点

    这篇文章主要为大家介绍了web worker使用学习来为你的项目增加亮点,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 鼠标划过时整行变色

    鼠标划过时整行变色

    鼠标划过时整行变色...
    2006-06-06

最新评论