Skip to content

oxc/no-barrel-file Restriction

What it does

Disallow the use of barrel files where the file contains export * statements, and the total number of modules exceed a threshold.

The default threshold is 100;

Why is this bad?

Barrel files that re-export many modules can significantly slow down applications and bundlers. When a barrel file exports a large number of modules, importing from it forces the runtime or bundler to process all the exported modules, even if only a few are actually used. This leads to slower startup times and larger bundle sizes.

References:

Example

Invalid:

javascript
export * from "foo"; // where `foo` loads a subtree of 100 modules
import * as ns from "foo"; // where `foo` loads a subtree of 100 modules

Valid:

javascript
export { foo } from "foo";

How to use

To enable this rule in the CLI or using the config file, you can use:

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

References

Released under the MIT License.