JSPM

eslint-plugin-no-barrel-files

1.2.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 201337
  • Score
    100M100P100Q186325F
  • License ISC

Package Exports

  • eslint-plugin-no-barrel-files
  • eslint-plugin-no-barrel-files/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-plugin-no-barrel-files) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

eslint-plugin-no-barrel-files

ESLint plugin to disallow barrel files.

Why?

Barrel files can slow down your build/tests, can cause circular dependencies, and makes tree shaking more difficult.

Rules

  • no-barrel-files
// fail
export * from "./foo";

import Foo from "./foo";
export default Foo;

import Foo from "./foo";
export { Foo };

export { Moo } from './Moo';
export { default as Moo } from './Moo';

// pass
const Foo = 'baz';
function Bar() {}
class Baz {}

export default Foo;
export { Bar, Baz }

import { Moo } from './Moo';
export const Baz = Moo;

Usage

Install

npm install eslint-plugin-no-barrel-files --save-dev

ESLint config

This plugin supports both flat config and legacy config.

Flat config (ESLint 9+)

import noBarrelFiles from "eslint-plugin-no-barrel-files";

export default [
  noBarrelFiles.flat,
];

Legacy config (ESLint <9)

module.exports = {
    plugins: ['no-barrel-files'],
    rules: {
        'no-barrel-files/no-barrel-files': 'error'
    }
}

Contributing

If you need any additional features or you find a bug, feel free to submit a pull request or submit an issue.