Caution
Use canonical/no-re-export instead of no-re-export/no-re-export
. See gajus/eslint-plugin-canonical#27 for more info
Disallow re-exporting in TypeScript/JavaScript.
# npm
npm install eslint-plugin-no-re-export --save-dev
# yarn
yarn add eslint-plugin-no-re-export --dev
# bun
bun install eslint-plugin-no-re-export --save-dev
Add no-re-export
to the plugins section of your .eslintrc
configuration file. You can omit the eslint-plugin-
prefix:
{
"plugins": ["no-re-export"]
}
Then configure the rules you want to use under the rules section.
{
"rules": {
"no-re-export/no-re-export": "error"
}
}
Rule ID | Description |
---|---|
no-re-export | disallow re-exporting in TypeScript/JavaScript |
-
Speeding up the JavaScript ecosystem - The barrel file debacle by @marvinhagemeister
-
Comment by @ljharb at eslint-plugin-import/issues/1920
Barrel exports increase bundle size and memory footprint, and are the only reason treeshaking is needed (to only-partially clean up sloppy importing), and in my experience, are best avoided, especially in any codebase of significant scale/size.