Skip to content
← Back to rules

oxc/no-barrel-file 限制

它的作用

禁止使用包含 export * 语句且导出模块总数超过阈值的 barrel 文件。

默认阈值为 100。

为什么这是个问题?

大量模块被重新导出的 barrel 文件会显著减慢应用程序和打包工具的性能。当一个 barrel 文件导出了大量模块时,从该文件导入会强制运行时或打包工具处理所有导出的模块,即使实际只使用了其中少数几个。这会导致启动时间变慢以及打包体积增大。

参考文献:

示例

无效情况:

javascript
export * from "foo"; // 其中 `foo` 加载了一个包含 100 个模块的子树
import * as ns from "foo"; // 其中 `foo` 加载了一个包含 100 个模块的子树

有效情况:

javascript
export { foo } from "foo";

配置

此规则接受一个配置对象,包含以下属性:

threshold

type: integer

default: 100

在触发规则之前,通过 export * 重新导出的模块最大数量。

如何使用

要通过配置文件或 CLI 启用此规则,可以使用:

json
{
  "rules": {
    "oxc/no-barrel-file": "error"
  }
}
bash
oxlint --deny oxc/no-barrel-file

参考资料