webpack - Webpack@5 中 `MainTemplate.hooks.beforeStartup` 的替代方案
问题描述
我正在尝试从 webpack 4 -> 5 迁移插件,但是它正在使用MainTemplate.hooks.beforeStartup
并且 webpack 抛出
UnhandledPromiseRejectionWarning: Error: MainTemplate.hooks.beforeStartup has been removed (use RuntimeGlobals.startup instead)
但是我还没有找到任何关于如何使用的信息RuntimeGlobals.startup
,那么这个钩子的正确替代方法是什么以及如何使用它呢?
解决方案
好吧,过了一段时间,似乎有人终于想通了。
所以在他看来
if (isWebpack4) {
compilation.mainTemplate.hooks.startup.tap(this.pluginName, (source) => {
return (this.options.appendScript && this.isRunning())
? require('./autoloadScript')(this.options) + source
: source;
});
} else {
compilation.hooks.additionalChunkRuntimeRequirements.tap(this.pluginName, (chunk, set) => {
set.add(RuntimeGlobals.require);
set.add(RuntimeGlobals.startup);
const LiveReloadRuntimeModule = require('./LiveReloadRuntimeModule');
compilation.addRuntimeModule(chunk, new LiveReloadRuntimeModule(this.options));
})
}
替代方案似乎是compilation.hooks.additionalChunkRuntimeRequirements
。虽然我没有测试过自己
推荐阅读
- reactjs - 需要关于大量静态资产的 PWA 建议
- django - django 表单 {{from.as_p}} 不呈现任何文本框或输入
- redis - RedisMessageListenerContainer:SubscriptionTask 异常中止:ClassCastException
- regex - 如何删除列表中的重复代理?
- javascript - HelloComponent 不是 NgModule 的一部分,即使它列在入口组件中?
- python - 将元组列表转换为字典 2 种不同的方式
- javascript - 如何检查对象嵌套了多少层?
- amazon-kinesis-firehose - 为什么在选择 Amazon Redshift 作为目标时需要提供 Amazon S3 存储桶?
- amazon-web-services - AWS S3:有没有办法将对象从目标存储桶复制到源存储桶
- php - WooCommerce REST:Nonce 验证失败