@mels/eslint-config-base

1.0.1 • Public • Published


Toolkit
@mels/eslint-config-base

Shareable base JS ESLint config.

npm (scoped) Twitter Follow

InstallHow To UseCreditsLicense

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

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i @mels/eslint-config-base

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

19.3 kB

Total Files

11

Last publish

Collaborators

  • melanieseltzer