美文网首页
webpack loader

webpack loader

作者: _1633_ | 来源:发表于2020-08-16 18:12 被阅读0次

    loader 是导出一个函数 的 node 模块, 它的作用是获取处理前的内容,对改内容进行处理后返回。

    第一个 loader 的传入参数只有一个:资源文件(resource file)的内容。compiler 需要得到最后一个 loader 产生的处理结果。这个处理结果应该是 String 或者 Buffer(被转换为一个 string),代表了模块的 JavaScript 源码。 如果有多个loader,第一个 loader 最后调用,期望返回是 JS 代码和 sourcemap 对象(可选)

    loader 函数接受的参数是有三个的:content, map, meta。content 是模块内容,但不仅限于字符串,也可以是 buffer,例如一些图片或者字体等文件。map 则是 sourcemap 对象,meta 是其他的一些元数据。loader 函数单纯返回一个值,这个值是当成 content 去处理,但如果你需要返回 sourcemap 对象或者 meta 数据,甚至是抛出一个 loader 异常给 webpack 时,你需要使用 this.callback(err, content, map, meta) 来传递这些数据。

    基本形式

    基本形式

    输出额外的内容:基本形式 只是返回了原内容转换后的结果,但是有些场景下,我们需要返回额外的内容(想要输出的额外内容), 比如 babel-loader 转换 ES6 代码 后,还要输出对应的 Source Map ,方便调试。this.callback 比起 return source 更常用一点。

输出额外的内容;当调用 callback() 时总是返回 undefined

    同步和异步 loader

        对应一些 loader 中 有 异步操作的

异步 loader

    处理二进制数据

        当我们需要 webpack 传递给我们 二进制的 数据 source 的时候,我们可以这样设置

 处理二进制数据

Loader API

    api 官网查看, 举个例子:

    this.context: 当前文件所在的根目录,比如当前 loader要处理的文件 是 /src/index.js,那么this.context 就等于 /src;

    this.resolve: 像 require 语句一样获得指定文件的完整路径,resolve(context: string,request: string,callback: function(err,result: string))

this.resolve

Loader 用法

    设计原则:1 单一职责 2 按照从右往走的执行顺序,上一个 loader 的执行结果 给下一个处理, 比如 [style-loader,css-loader]

    使用方法

        1 本地加载, 配置 webpack.config.js, resolverLoader

resolverLoader

    2 NPM link

        1 首先 loader 所在的目录下有 package.json ,并且 package 中的 name 就是我们的 包名

        2 在该目录下执行 npm link,就会将我们的包 注册到全局;

        3 在要使用的 项目目录下 中执行 npm link 包名 , 就会将全局中的包 引入 到 node_moduels 中,我们就可以像其他的 loader 一样使用了 。


loader 开发

    我们可以使用 loader-runner 这个 npm 包,在没有安装 webpack 和 webpack-cli 的情况下开发 loader。

    loader-runner github 地址

相关文章

  • 7 webpack + vue-loader

    vue-loader vue-loader基于webpack webpack+vue-loader

  • webpack4打包css,html

    webpack安装 webpack打包css 安装style-loader css-loader webpack打...

  • webpack

    webpack 唯一功能:打包loader,没有loader,webpack只能打包js,有了loader,可以打...

  • Webpack Loader源码导读之css-loader

    原文地址:Webpack Loader源码导读之css-loader 在上一篇Webpack Loader源码导读...

  • webpack(壹)

    常用webpack 插件 html-webpack-plugin css-loader style-loader...

  • loader初识

    loader 介绍 loader让webpack能够去处理那些非JavaScript文件(webpack自身只理解...

  • 怎么编写一个 webpack loader

    编写 loader 前需要知道 webpack loader 的执行循序?从右到左执行。 为什么 webpack ...

  • 写一个webpack-loader

    都知道webpack的loader,可是你写过一个loader吗?最近有空写了一个webpack-loader,如...

  • 8-webpack-less-loader使用

    这里webpack中loader处理规则,问题,解决方法 一.webpack中loader处理规则 判断当前需要打...

  • webpack 之 css module

    webpack 之 css module webpack配置css-loader?modulesmodules ...

网友评论

      本文标题:webpack loader

      本文链接:https://www.haomeiwen.com/subject/tzoprktx.html