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';
  `;
});