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

# EntryPlugin

在编译时添加一个入口 chunk。该 chunk 的名称为 `options.name`，仅包含一个模块（以及依赖项）。该模块是通过 `entry` 在 `context` 下（绝对路径）解析出来的。

## 示例

通过插件注册一个入口：

```js title="rspack.config.mjs"
import { rspack } from '@rspack/core';

export default {
  plugins: [
    new rspack.EntryPlugin(process.cwd(), './src/index.js', { name: 'main' }),
  ],
};
```

## 选项

### context

模块解析时的基础路径（绝对路径），入口模块的解析将在此路径下进行。

- **Type:** `string`

### entry

指定要作为入口点的模块路径。

- **Type:** `string`

### options

入口模块的额外配置。

- **Type:**

```ts
type EntryOptions =
  | string
  | (Omit<EntryDescriptionNormalized, 'import'> & {
      /**
       * The name of the entry chunk.
       */
      name?: string;
    });
```

当 `options` 为字符串时，它的值会被作为 `name` 使用。

请参考 [入口描述对象](/zh/config/entry.md#入口描述对象) 了解所有可用的选项。

## 全局入口

当插件的 `name` 选项为 `undefined` 时，该入口被视为全局入口，它会自动注入到：

1. 所有常规入口 chunk
2. 所有异步入口（例如通过 `new Worker()` 创建的 worker chunk）

这可以用于注入一段全局代码，例如 dev server 的热更新运行时代码，或是模块联邦的初始化逻辑。

```js
new rspack.EntryPlugin(context, './global-runtime.js', { name: undefined });
```
