本节内容派生于以下链接指向的内容 ,并遵守 CC BY 4.0 许可证的规定。
以下内容如果没有特殊声明,可以认为都是基于原内容的修改和删减后的结果。
Loader 上下文表示 loader 内部可用的属性,这些属性在 loader 中通过 this
属性进行访问。
添加目录作为 loader 结果的依赖,使目录中文件的任何变化可以被监听到。
添加一个文件作为 loader 结果的依赖,使它们的任何变化可以被监听到。例如,sass-loader
、less-loader
就使用了这个技巧,当导入的样式文件发生变化时就会重新编译。
this.addDependency()
的别名。
添加一个不存在的文件作为 loader 结果的依赖项,以使它们可监听。
告诉 Rspack 这个 loader 将会异步被调用。返回 this.callback
。
默认情况下,loader 的处理结果会被标记为可缓存。调用这个方法然后传入 false
,可以关闭 loader 处理结果的缓存能力。
移除 loader 结果的所有依赖。
将 Loader 处理后的结果告诉 Rspack。
第一个参数必须是 Error
或者 null
,会标记当前模块为编译失败,第二个参数是一个 string
或者 Buffer
,表示模块被该 Loader 处理后的文件内容,第三个参数是一个可以该 Loader 处理后的 source map,第四个参数会被 Rspack 忽略,可以是任何东西(例如一些元数据)。
当这个函数被调用时,你应该返回 undefined
以避免 loader 结果的歧义。
传递给 this.callback
的值会传递给下一个 loader。
sourceMap
和 meta
参数是可选的,如果没有传递,那么下一个 loader 将不会收到它们。
当前模块所在的目录。
用于在 pitch 和 normal 阶段之间共享数据。
发出一个错误,与在 loader 中 throw
和 this.callback(err)
不同,它不会标记当前模块为编译失败,只会在 Rspack 的 Compilation 上添加一个错误,并在此次编译结束后显示在命令行中。
发出一个警告。
产生一个文件。
提取给定的 loader 选项,接受一个可选的 JSON schema 作为参数。
创建一个类似于 this.resolve
的解析函数。
解析一个 request。
context
必须是一个目录的绝对路径。此目录用作解析的起始位置。request
是要被解析的 request。callback
是一个处理解析路径的回调函数。当 Rspack 运行时读取 mode 的值
可能的值为:'production'
、'development'
、'none'
当 Rspack 运行时读取 target 的值
当前模块的路径字符串。比如 '/abc/resource.js?query#hash'
。
当前模块的路径字符串,不包括 query 和 fragment 参数。比如 '/abc/resource.js?query#hash'
中的 '/abc/resource.js'
。
当前模块的路径字符串的 query 参数。比如 '/abc/resource.js?query#hash'
中的 '?query'
。
当前模块的路径字符串的 fragment 参数。比如 '/abc/resource.js?query#hash'
中的 '#hash'
。
config 中配置的项目所在的目录
是否应该生成一个 source map。
获取此次编译过程的 logger,可通过该 logger 记录消息。