Skip to content

Prototype Interactive eslint configuration to be used across several JavaScript projects

License

Notifications You must be signed in to change notification settings

PrototypeInteractive/eslint-config

Repository files navigation

@prototype-interactive/eslint-config

NPM version Downloads Build Status Coverage Status Dependency status Dev Dependency status

Prototype Interactive eslint configuration to be used across several JavaScript projects.

Originaly based off MOXY's.

Installation

$ npm install --save-dev eslint @prototype-interactive/eslint-config

Usage

Create a .eslintrc.json file in the project root using a base configuration and addons.

First you need to choose the base configuration to use:

  • es5 - The configuration to be used in ECMAScript 5 based projects
  • es6 - The configuration to be used in ECMAScript 6 based projects (aka 2015)
  • es7 - The configuration to be used in ECMAScript 7 based projects (aka 2016)
  • es8 - The configuration to be used in ECMAScript 8 based projects (aka 2017)
  • es9 - The configuration to be used in ECMAScript 9 based projects (aka 2018)

Then enhance it with one or more addons:

  • browser - If you are going to develop code for the browser (assumes you use CommonJS or AMD)
  • node - If you are going to develop code for NodeJS
  • es-modules: If you are going to use ES6 import & export instead of CommonJS or AMD
  • babel-parser: Use babel-eslint parser so that you may use language features that are not yet implemented in eslint (e.g.: dynamic imports)
  • react - If you are going to use React (requires es6 base configuration or higher)
  • jest - If you are going to use Jest to develop tests

Examples

Cutting edge React in the browser:

{
    "root": true,
    "extends": [
        "@prototype-interactive/eslint-config/es9",
        "@prototype-interactive/eslint-config/addons/browser",
        "@prototype-interactive/eslint-config/addons/es-modules",
        "@prototype-interactive/eslint-config/addons/react"
    ]
}

Cutting edge NodeJS:

{
    "root": true,
    "extends": [
        "@prototype-interactive/eslint-config/es9",
        "@prototype-interactive/eslint-config/addons/node"
    ]
}

Cutting edge NodeJS with ES modules (requires a transpiler such as Babel or similar):

{
    "root": true,
    "extends": [
        "@prototype-interactive/eslint-config/es9",
        "@prototype-interactive/eslint-config/addons/node",
        "@prototype-interactive/eslint-config/addons/es-modules"
    ]
}

Old ES5 in the browser:

{
    "root": true,
    "extends": [
        "@prototype-interactive/eslint-config/es5",
        "@prototype-interactive/eslint-config/addons/browser"
    ]
}

Note that by setting root to true, we ensure that no ancestor configuration is used which also improves ESLint performance because no more file lookups need to be done.

Tests

$ npm test $ npm test -- --watch during development

License

MIT License

About

Prototype Interactive eslint configuration to be used across several JavaScript projects

Resources

License

Stars

Watchers

Forks

Packages

No packages published