@mapbox/eslint-config-mapbox v5.1.0
eslint-config-mapbox
Shared ESLint config for Mapbox engineering teams.
Quick start with Node.js
Install the following dev-dependencies:
npm install --save-dev \ @mapbox/eslint-config-mapboxExtend the
@mapbox/eslint-config-mapboxconfig in your.eslintrc(oreslintConfigkey in yourpackage.json):"eslintConfig": { "extends": "@mapbox/eslint-config-mapbox" }For TypeScript, prefer
.eslint.jsand use the snippet below:'plugins': [ '@typescript-eslint', 'prettier' ], 'parserOptions': { 'tsconfigRootDir': __dirname }, 'extends': [ '@mapbox/eslint-config-mapbox/node20-typescript' ]Specify the version of Node.js your project uses by setting
.engines.nodein yourpackage.json, according to the settings you choose."engines": { "node": ">=20" }Run
eslinton your project as part of yourtestandlintscripts:"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 aseslint-plugin-nodeoreslint-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
@mapbox/eslint-config-mapbox/node- Depends on eslint-plugin-node.
- For Node.js and CommonJS.
- Specify the version of Node.js your project uses by either setting
.engines.nodein yourpackage.json, or by extending an LTS-version-specific ESLint configuration:node10,node12,node14,node14-typescript,node20,node20-typescript.
@mapbox/eslint-config-mapbox/react- Depends on eslint-plugin-react.
- For React and JSX.
@mapbox/eslint-config-mapbox/import- Depends on eslint-plugin-import.
- For ES2015 modules (
importandexport).
@mapbox/eslint-config-mapbox/promise- Depends on eslint-plugin-promise.
- For
Promises.
@mapbox/eslint-config-mapbox/xss- Depends on eslint-plugin-xss.
- For avoiding potential XSS issues in front end JavaScript.
- Does not perform any JavaScript style linting if used on its own.
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.
10 months ago
11 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
2 years ago
2 years ago
3 years ago
6 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago