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

# Module

模块：该选项用于决定如何处理一个项目中不同类型的模块。

- **类型：** `Object`
- **默认值：** `{}`

## module.defaultRules

- **类型：** `('...' | Rule | Falsy)[]`

`defaultRules` 用于配置 Rspack 在内部默认启用的模块解析与处理规则。这些规则是自动生效的，用于确保常见资源类型（如 JavaScript、JSON、CSS、Wasm 等）能够被正常解析和打包。

你可以通过该选项扩展、覆写或禁用默认规则，从而对构建行为进行更细粒度的控制。

例如，扩展默认规则：

```js title="rspack.config.mjs"
export default {
  module: {
    defaultRules: [
      // 你可以使用 "..." 来引用 Rspack 默认的规则
      '...',
      // 增加一个自定义规则
      {
        test: /\.foo$/,
        use: ['foo-loader'],
      },
    ],
  },
};
```

如果你希望移除 Rspack 所有的默认规则，你可以省略 `"..."`：

```js title="rspack.config.mjs"
export default {
  module: {
    defaultRules: [],
  },
};
```

:::tip
查看 [源代码](https://github.com/web-infra-dev/rspack/blob/main/packages/rspack/src/config/defaults.ts#L453) 了解所有的默认规则。
:::

## module.generator

- **类型：** `Object`
- **默认值：** `{}`

使用 `module.generator` 可以按模块类型配置输出生成选项，例如资源文件名、publicPath 和 CSS Modules 导出形式。查看 [Module Generator](https://rspack.rs/zh/config/module-generator.md) 了解详情。

## module.noParse

- **类型：**

```ts
type NoParseOption =
  | string
  | RegExp
  | ((request: string) => boolean)
  | (string | RegExp | ((request: string) => boolean))[];
```

- **默认值：** `undefined`

匹配的文件代码不会被 Rspack 转换，包括 `module.exports`, `require`, `import` 这些模块系统相关的语法。

用来忽略那些没有外部依赖的第三方库的时候很有用，有时还能提升性能。

请注意：这些文件依然还会被已配置的 loaders 处理。

```js title="rspack.config.mjs"
export default {
  module: {
    noParse: /typescript|watermark-dom/,
  },
};
```

```js title="rspack.config.mjs"
import { createRequire } from 'node:module';

const require = createRequire(import.meta.url);

export default {
  module: {
    noParse: [require.resolve('typescript'), /watermark-dom/],
  },
};
```

```js title="rspack.config.mjs"
export default {
  module: {
    noParse: (request) => /typescript|watermark-dom/.test(request),
  },
};
```

## module.parser

- **类型：** `Object`
- **默认值：** `{}`

使用 `module.parser` 可以按模块类型配置解析器选项，例如依赖收集以及模块语法的解析方式。查看 [Module Parser](https://rspack.rs/zh/config/module-parser.md) 了解详情。

## module.rules

查看 [Module Rules](https://rspack.rs/zh/config/module-rules.md) 了解详情。


本页改编自 [webpack 文档](https://webpack.docschina.org/configuration/module/)，遵循 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)，且已作修改。

