@mels/eslint-config-base
v1.0.1
Published
Shareable base JS ESLint config.
Downloads
16
Readme
✨ 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