gpt4 book ai didi

webpack - 如何从 Webpack 4 中的加载程序上下文访问编译器/编译/模块

转载 作者:行者123 更新时间:2023-12-02 04:22:46 25 4
gpt4 key购买 nike

我正在尝试编写一个自定义 webpack 加载器。

Webpack 文档提到访问 _compiler , _compilation_module加载程序上下文中的属性已被弃用 (https://webpack.js.org/api/loaders/#this_compilation),应避免使用。

是否有更新的 API 可以让我访问它们?

最佳答案

对于任何试图弄清楚同样事情的人。我认为没有任何替代 API。这个想法可能是加载器不应该真的需要访问这些对象,如果你确实需要它们,你应该使用插件来代替(或另外)。
如果这些属性将来会被删除,您可以使用插件“将它们添加回来”:

// custom-plugin.js
const NormalModule = require('webpack/lib/NormalModule')

class CustomPlugin {
apply (compiler) {
compiler.hooks.compilation.tap('CustomPlugin', (compilation) => {
NormalModule.getCompilationHooks(compilation).loader.tap('CustomPlugin', (loader, module) => {
loader._customPlugin = {
module: module,
compiler: compiler,
compilation: compilation,
}
})
});

}
}

module.exports = CustomPlugin

// custom-loader.js
module.exports = function (source) {
console.log({
module: this._customPlugin.module === this._module, // true
compiler: this._customPlugin.compiler === this._compiler, // true
compilation: this._customPlugin.compilation === this._compilation, // true
});
return source
}

关于webpack - 如何从 Webpack 4 中的加载程序上下文访问编译器/编译/模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58379150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com