@mapbox/eslint-config-mapbox

5.0.0 • Public • Published

eslint-config-mapbox

Build Status

Shared ESLint config for Mapbox engineering teams.

Quick start with Node.js

  1. Install the following dev-dependencies:

    npm install --save-dev \
      @mapbox/eslint-config-mapbox
    
  2. Extend the @mapbox/eslint-config-mapbox config in your .eslintrc (or eslintConfig key in your package.json):

    "eslintConfig": {
      "extends": "@mapbox/eslint-config-mapbox"
    }

    For TypeScript, prefer .eslint.js and use the snippet below:

    'plugins': [
      '@typescript-eslint',
      'prettier'
    ],
    'parserOptions': {
      'tsconfigRootDir': __dirname
    },
    'extends': [
      '@mapbox/eslint-config-mapbox/node20-typescript'
    ]
  3. Specify the version of Node.js your project uses by setting .engines.node in your package.json, according to the settings you choose.

    "engines": {
      "node": ">=20"
    }
  4. Run eslint on your project as part of your test and lint scripts:

    "scripts": {
      "lint": "eslint --ignore-path .eslintignore --ext .js,.ts .",
      "test": "tape test/*.test.js && npm run lint",
    }

Usage

The "Quick start" above exemplifies usage of this package with standard Node.js code.

Depending on the ECMAScript version of your code, whether you are using non-standard syntax like Flow and React's JSX, or other considerations, you may want to extend a variety of configurations provided by this package. eslint-config-mapbox exposes several configurations targeting specific ESLint plugins, each named after the plugin it targets.

To use each plugin-specific configuration, you'll need to do the following:

  • Install as dev-dependencies @mapbox/eslint-config-mapbox, eslint, and any plugins that are used by the configuration(s) you are extending, such as eslint-plugin-node or eslint-plugin-react.

  • Add the configuration(s) you are using to the "extends" array in your project's ESLint configuration, like this:

    {
      "extends": [
        "@mapbox/eslint-config-mapbox/react",
        "@mapbox/eslint-config-mapbox/import",
        "@mapbox/eslint-config-mapbox/promise"
      ]
    }

Plugin-specific configurations

With Prettier

If you are using Prettier to format your JS, install eslint-config-prettier and add it at the end of your "extends" array. It will turn off all ESLint rules related to the code-style preferences that Prettier already addresses.

Readme

Keywords

none

Package Sidebar

Install

npm i @mapbox/eslint-config-mapbox

Weekly Downloads

7,246

Version

5.0.0

License

BSD-2-Clause

Unpacked Size

19.6 kB

Total Files

23

Last publish

Collaborators

  • mbx-npm-ci-production
  • mbx-npm-ci-staging
  • mbx-npm-advanced-actions-production
  • mbx-npm-advanced-actions-staging
  • mbx-npm-09-production
  • mbx-npm-08-production
  • mbx-npm-07-production
  • mbx-npm-06-production
  • mbx-npm-05-production
  • mbx-npm-04-production
  • mbx-npm-03-production
  • mbx-npm-02-production
  • mbx-npm-01-production
  • mbx-npm-02-staging
  • mapbox-npm-01
  • mapbox-npm-02
  • mapbox-npm-07
  • mapbox-npm-03
  • mapbox-npm-04
  • mapbox-npm-09
  • mapbox-npm-05
  • mapbox-npm-06
  • mapbox-npm-08
  • mapbox-npm-advanced-actions
  • mapbox-npm-ci
  • mapbox-npm
  • mapbox-admin
  • mapbox-machine-user