Are you an LLM? You can read better optimized documentation at /docs/guide/usage/linter/rules/oxc/no-barrel-file.md for this page in Markdown format
oxc/no-barrel-file 限制
它的作用
禁止使用包含 export * 语句且导出模块总数超过阈值的 barrel 文件。
默认阈值为 100。
为什么这是个问题?
大量模块被重新导出的 barrel 文件会显著减慢应用程序和打包工具的性能。当一个 barrel 文件导出了大量模块时,从该文件导入会强制运行时或打包工具处理所有导出的模块,即使实际只使用了其中少数几个。这会导致启动时间变慢以及打包体积增大。
参考文献:
- https://github.com/thepassle/eslint-plugin-barrel-files
- https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-7
示例
无效情况:
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