JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3948
  • Score
    100M100P100Q124092F

ESLint shareable config used at Springer Nature

Package Exports

  • @springernature/eslint-config

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@springernature/eslint-config) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

eslint-config-springernature

Build Status NPM version

ESLint shareable config used at Springer Nature.

Installation

Our default export contains all of our ESLint rules, and includes the following plugins:

Using Yarn

Manual

  1. run npm info "@springernature/eslint-config@latest" peerDependencies to list the peer dependencies and versions
  2. run yarn add --dev <dependency>@<version> for each listed peer dependency

Automated

If you have npx available then you can run npx install-peerdeps --dev @springernature/eslint-config to install the dependencies automatically. This will detect and use Yarn if available.

Using NPM

Install the correct versions of each package, which are listed by the command:

npm info "@springernature/eslint-config@latest" peerDependencies

If using npm 5+, you have NPX available, and can use this shortcut

npx install-peerdeps --dev @springernature/eslint-config

If using npm < 5, Linux/OSX users can run

(
  export PKG=@springernature/eslint-config;
  npm info "$PKG@latest" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs npm install --save-dev "$PKG@latest"
)

Which produces and runs a command like:

npm install --save-dev @springernature/eslint-config eslint@^#.#.# eslint-plugin-node@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-o-use-extend-native@^#.#.# eslint-plugin-promise@^#.#.# eslint-plugin-unicorn@^#.#.#

If using npm < 5, Windows users can either install all the peer dependencies manually, or use the install-peerdeps cli tool.

npm install -g install-peerdeps
install-peerdeps --dev @springernature/eslint-config

The cli will produce and run a command like:

npm install --save-dev @springernature/eslint-config eslint@^#.#.# eslint-plugin-node@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-o-use-extend-native@^#.#.# eslint-plugin-promise@^#.#.# eslint-plugin-unicorn@^#.#.#

Usage

Add one of the following to your .eslintrc file:

  • core - The core Springer Nature code style (with ES6 support)
  • legacy - For legacy JS environments (without ES6 support)

These optional extensions can be added in addition to one of the above configurations:

Examples

// Core configuration
{
  "extends": "@springernature/eslint-config",
  "rules": {
    // Additional, per-project rules...
  }
}
// Legacy configuration
{
  "extends": "@springernature/eslint-config/legacy",
  "rules": {
    // Additional, per-project rules...
  }
}
// Optional extensions
{
  "extends": [
    "@springernature/eslint-config",
    "@springernature/eslint-config/node",
    "@springernature/eslint-config/jest"
  ],
  "rules": {
    // Additional, per-project rules...
  }
}

Ignore files/folders

You can optionally create an .eslintignore file to ignore file paths. The .eslintignore file is a plain text file where each line is a glob pattern indicating which paths should be omitted from linting. For example, the following will ignore all files in the tests and coverage folders:

**/tests/*
**/coverage/*

Contributing

For information on how to contribute to this config, please see the Contributing guidelines.

We should be maintaining this config by updating plugins to the latest versions, and upgrading ESLint when a new version is available in order to keep up to date with new rules and syntax changes.