eslint-config-gsmlg

ESLint rules according to gsmlg' personal preference

Usage no npm install needed!

<script type="module">
  import eslintConfigGsmlg from 'https://cdn.skypack.dev/eslint-config-gsmlg';
</script>

README

eslint-config-gsmlg

ESLint rules for all of my personal projects. Feel free to use these conventions :-)


Table of Contents

Installation

This module is distributed via [npm][npm] which is bundled with [node][node] and should be installed as one of your project's devDependencies:

npm install --save-dev eslint-config-gsmlg

This library has a required peerDependencies listing for [eslint][eslint]

Usage

Then add the extends to your .eslintrc.js:

module.exports = {
  extends: 'gsmlg',
  rules: {
    // your overrides
  },
}

Other configs

This config also exposes a few other configs that I use often and pull in as needed.

You can use them standalone:

module.exports = {
  extends: 'gsmlg/<config-name>',
}

Or in combination with the base config (recommended)

module.exports = {
  extends: ['gsmlg', 'gsmlg/<config-name>'],
}

Note: Due to this bug you need to have the associated plugins installed to make things work. I recommend adding them as dependencies to your project if you're going to use the config for it.

Things to know

  • The default config uses @babel/eslint-parser to support stage features that ESLint doesn't support and it opts to use the @babel/eslint-plugin rules over the ESLint rules to support rules for these features as well.
  • All plugins needed for rules used by these configs are dependencies of this module so you don't have to install anything on your own.
  • The default config actually is composed of several configurations and you can use those individually. These are the configs it's using: possible-errors.js, best-practices.js, stylistic.js, es6/index.js, and import/index.js. You can use each of these configs yourself if you want to leave my own personal style out of it. Also, the es6 and import configs each have a possible-errors.js, best-practices.js, and stylistic.js which they are composed of as well.

Example of highly customized config

module.exports = {
  extends: [
    'gsmlg/possible-errors',
    'gsmlg/best-practices',
    'gsmlg/es6/possible-errors',
    'gsmlg/import',
    'gsmlg/jest',
  ],
  rules: {
    /* custom rules */
  },
}

Issues

Looking to contribute? Look for the [Good First Issue][good-first-issue] label.

🐛 Bugs

Please file an issue for bugs, missing documentation, or unexpected behavior.

[See Bugs][bugs]

💡 Feature Requests

Please file an issue to suggest new features. Vote on feature requests by adding a 👍. This helps maintainers prioritize what to work on.

[See Feature Requests][requests]

LICENSE

MIT

Inspiration

This is forked from kcd-scripts.