1.0.1 • Published 2 years ago

@mels/eslint-config-base v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

✨ Features

This package contains my base/common JS rules as an extensible shared config.

Install

With npm:

npm install @mels/eslint-config-base --save-dev

With yarn:

yarn add @mels/eslint-config-base --dev

⚠️ Important Note

@mels/eslint-config-base must be referenced first in the ESLint extends array when using other toolkit packages along with it.

It is the only one that is required (the rest are optional) in terms of setup. For example, if you want to use @mels/eslint-config-typescript then you also must use @mels/eslint-config-base first for the proper setup. If you just want to use @mels/eslint-config-base alone, then that is fine too.

Why? Because it uses @rushstack/eslint-patch under the hood to fix a longstanding issue with shareable configs not allowing plugins as dependencies.

Having the patch added internally here in the base config was an intentional decision so that the consumer never has to worry about adding it themselves. Doing so allows all @mels/... packages up the chain to bring along their own plugins as dependencies.

The trade-off is of course that the configs are bound to a specific order, with @mels/eslint-config-base always needing to be first. For now (and until ESLint makes progress on supporting plugins as dependencies) this trade-off is acceptable for the huge convenience in setup.

How To Use

// .eslintrc.js

module.exports = {
  extends: [
    '@mels/base', // must always be first
    // '@mels/typescript',
    // '@mels/react',
    // ... etc
  ],
  // ... any additional project-specific overrides
};

Credits

  • Toolkit logo by Creatype from www.flaticon.com

License

MIT

1.0.1

2 years ago

1.0.0

2 years ago

0.1.0

2 years ago

0.2.0

2 years ago

0.0.0

2 years ago