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

# lib.banner

- **类型：**

```ts
type Banner = {
  js?: string;
  css?: string;
  dts?: string;
};
```

- **默认值：** `{}`
- **顶层配置：** 支持

在每个 JavaScript、CSS 或 类型声明输出文件顶部注入内容。

## 对象类型

### banner.js

- **类型：** `string`
- **默认值：** `undefined`

在每个 JavaScript 输出文件顶部注入内容。

### banner.css

- **类型：** `string`
- **默认值：** `undefined`

在每个 CSS 输出文件顶部注入内容。

### banner.dts

- **类型：** `string`
- **默认值：** `undefined`

在每个类型声明输出文件顶部注入内容。

## 注意事项

JavaScript 和 CSS 文件中的 banner 内容是基于 Rspack 的 [BannerPlugin](https://rspack.rs/zh/plugins/webpack/banner-plugin) 实现的。你需要注意以下几点：

- 默认启用了 `raw: true`，所以 banner 内容会作为原始字符串注入，而不是包裹在注释中。因此如果你想注入注释，需要自己添加 `/*` 和 `*/` 或其他注释语法。
- `stage` 选项被设置在 JavaScript 和 CSS 文件优化之后的阶段，从而防止 banner 内容被优化掉。

## 自定义 Banner 内容

如果上述默认设置无法满足你的需求，你可以通过 `tools.rspack.plugins` 自定义添加一个带有相应选项的 [BannerPlugin](https://rspack.rs/plugins/webpack/banner-plugin) 实例。

```ts title="rslib.config.ts"
export default {
  lib: [
    {
      // ...
      tools: {
        rspack: {
          plugins: [
            new rspack.BannerPlugin({
              // ... options
            }),
          ],
        },
      },
    },
  ],
};
```

:::warning

类型声明文件中的 banner 内容处理方式与 JavaScript 和 CSS 输出文件不同。它是直接使用文件系统 API 写入的，所以设置 `BannerPlugin` 不会对其产生影响。

:::
