RuntimePlugin 钩子
RuntimePlugin
用于生成运行时 Rspack 启动所需的代码。它提供以下生命周期钩子,可用于修改这些运行时代码。
你可以通过参考如下代码获取这些钩子:
module.exports = {
// ...
plugins: [
{
apply: compiler => {
const { RuntimePlugin } = compiler.webpack;
compiler.hooks.compilation.tap('MyPlugin', compilation => {
const hooks = RuntimePlugin.getCompilationHooks(compilation);
// ...
});
},
},
],
};
createScript
SyncWaterallHook<[string, chunk]>
可修改创建 <script>
标签时所执行的代码。
如以下代码,可给 <script>
标签添加 crossorigin
属性:
hooks.createScript.tap('MyPlugin', (code, chunk) => {
return `
${code}
script.crossorigin = 'anonymous';
`;
});
linkPrefetch
SyncWaterallHook<[string, chunk]>
可修改创建预载的 <link rel="prefetch">
标签时所执行的代码。
如以下代码,可给用于预载的 <link>
标签添加 crossorigin
属性:
hooks.linkPrefetch.tap('MyPlugin', (code, chunk) => {
return `
${code}
link.crossorigin = 'anonymous';
`;
});
linkPreload
SyncWaterallHook<[string, chunk]>
可修改创建预取的 <link rel="preload">
标签时所执行的代码。
如以下代码,可给用于预取的 <link>
标签添加 crossorigin
属性:
hooks.linkPreload.tap('MyPlugin', (code, chunk) => {
return `
${code}
link.crossorigin = 'anonymous';
`;
});