Detalhes do pacote

@mapbox/eslint-config-mapbox

mapbox49.1kBSD-2-Clause5.1.0

Generic eslint configuration for Mapbox

readme (leia-me)

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.