What is eslint-config-airbnb?
The eslint-config-airbnb package provides a set of ESLint rules that follow Airbnb's JavaScript style guide. It is widely used in the JavaScript community for enforcing a consistent code style and catching common coding errors.
What are eslint-config-airbnb's main functionalities?
JavaScript Style Rules
Enforces JavaScript style rules as per Airbnb's style guide. This includes rules for syntax, best practices, variable naming, line breaks, and more. The code sample shows how to extend these rules in a project's package.json file.
"eslintConfig": { "extends": "airbnb" }
React Specific Rules
Provides a set of rules specific to React, including hooks rules. This helps in maintaining code quality and consistency in React components. The code sample demonstrates how to extend these rules for React in a project's package.json file.
"eslintConfig": { "extends": "airbnb/hooks" }
Import/Export Rules
Includes rules for managing import/export statements, ensuring they are used correctly and efficiently. The code sample indicates how to use the base rules without React-specific rules in a project's package.json file.
"eslintConfig": { "extends": "airbnb-base" }
Other packages similar to eslint-config-airbnb
eslint-config-standard
This package provides a standard set of rules for JavaScript code style. It is less opinionated than Airbnb and does not enforce JSX or React specific rules. It is a good alternative for those who prefer a more flexible approach to code style.
eslint-config-google
This package includes a set of ESLint rules based on Google's JavaScript style guide. It offers another comprehensive style guide but with different preferences and coding conventions compared to Airbnb's.
eslint-config-prettier
eslint-config-prettier disables all formatting-related ESLint rules that might conflict with Prettier, a code formatter. It is often used in conjunction with other ESLint configs to ensure that ESLint focuses on code-quality rules while Prettier takes care of formatting.
eslint-config-airbnb
This package provides Airbnb's .eslintrc as an extensible shared config.
Usage
We export three ESLint configurations for your usage.
eslint-config-airbnb
Our default export contains all of our ESLint rules, including EcmaScript 6+
and React. It requires eslint
, babel-eslint
, and eslint-plugin-react
.
npm install --save-dev eslint-config-airbnb babel-eslint eslint-plugin-react eslint
- add
"extends": "airbnb"
to your .eslintrc
eslint-config-airbnb/base
Lints ES6+ but does not lint React. Requires eslint
and babel-eslint
.
npm install --save-dev eslint-config-airbnb babel-eslint eslint
- add
"extends": "airbnb/base"
to your .eslintrc
eslint-config-airbnb/legacy
Lints ES5 and below. Only requires eslint
.
npm install --save-dev eslint-config-airbnb eslint
- add
"extends": "airbnb/legacy"
to your .eslintrc
See Airbnb's Javascript styleguide and
the ESlint config docs
for more information.
Improving this config
Consider adding test cases if you're making complicated rules changes, like
anything involving regexes. Perhaps in a distant future, we could use literate
programming to structure our README as test cases for our .eslintrc?
You can run tests with npm test
.
You can make sure this module lints with itself using npm run lint
.
Changelog
0.1.0
- switch to modular rules files courtesy the eslint-config-default
project and @taion. PR
- export
eslint-config-airbnb/legacy
for ES5-only users.
eslint-config-airbnb/legacy
does not require the babel-eslint
parser.
PR
0.0.9
- add rule no-undef
- add rule id-length
0.0.8
- now has a changelog
- now is modular (see instructions above for with react and without react versions)