> For AI agents: the complete documentation index is available at /zh/llms.txt, the full documentation bundle is available at /zh/llms-full.txt.

# RuntimePlugin 钩子

`RuntimePlugin` 用于生成运行时 Rspack 启动所需的代码。它提供以下生命周期钩子，可用于修改这些运行时代码。

你可以通过参考如下代码获取这些钩子：

```js title="rspack.config.mjs"
export default {
  plugins: [
    {
      apply: (compiler) => {
        const { RuntimePlugin } = compiler.rspack;
        compiler.hooks.compilation.tap('MyPlugin', (compilation) => {
          const hooks = RuntimePlugin.getCompilationHooks(compilation);
          // ...
        });
      },
    },
  ],
};
```

## `createScript`

`SyncWaterfallHook<[string, Chunk]>`

可修改创建 `<script>` 标签时所执行的代码。

如以下代码，可给 `<script>` 标签添加 `crossorigin` 属性：

```js
hooks.createScript.tap('MyPlugin', (code, chunk) => {
  return `
    ${code}
    script.crossOrigin = 'anonymous';
  `;
});
```


Chunk.ts

## `createLink`

`SyncWaterfallHook<[string, Chunk]>`

可修改创建通用 `<link>` 标签时所执行的代码。

```js
hooks.createLink.tap('MyPlugin', (code, chunk) => {
  return `
    ${code}
    link.crossOrigin = 'anonymous';
  `;
});
```


Chunk.ts

## `linkPrefetch`

`SyncWaterfallHook<[string, Chunk]>`

可修改创建[预取](/zh/guide/optimization/code-splitting.md#prefetchingpreloading-模块)的 `<link rel="prefetch">` 标签时所执行的代码。

如以下代码，可给用于预取的 `<link>` 标签添加 `crossorigin` 属性：

```js
hooks.linkPrefetch.tap('MyPlugin', (code, chunk) => {
  return `
    ${code}
    link.crossOrigin = 'anonymous';
  `;
});
```


Chunk.ts

## `linkPreload`

`SyncWaterfallHook<[string, Chunk]>`

可修改创建[预加载](/zh/guide/optimization/code-splitting.md#prefetchingpreloading-模块)的 `<link rel="preload">` 标签时所执行的代码。

如以下代码，可给用于预加载的 `<link>` 标签添加 `crossorigin` 属性：

```js
hooks.linkPreload.tap('MyPlugin', (code, chunk) => {
  return `
    ${code}
    link.crossOrigin = 'anonymous';
  `;
});
```


Chunk.ts