ork.
For example, [ @angular-eslint/eslint-plugin
](https://www.npmjs.com/package/@angular-eslint/eslint-plugin) contains best
practices for using the Angular framework.

For more information, refer to [ Configure Plugins ](../configure/plugins) .

##  Parsers

An ESLint parser converts code into an abstract syntax tree that ESLint can
evaluate. By default, ESLint uses the built-in [ Espree
](https://github.com/eslint/espree) parser, which is compatible with standard
JavaScript runtimes and versions.

Custom parsers let ESLint parse non-standard JavaScript syntax. Often custom
parsers are included as part of shareable configurations or plugins, so you
don’t have to use them directly.

For example, [ @typescript-eslint/parser
](https://www.npmjs.com/package/@typescript-eslint/parser) is a custom parser
included in the [ typescript-eslint ](https://github.com/typescript-
eslint/typescript-eslint) project that lets ESLint parse TypeScript code.

##  Custom Processors

An ESLint processor extracts JavaScript code from other kinds of files, then
lets ESLint lint the JavaScript code. Alternatively, you can use a processor
to manipulate JavaScript code before parsing it with ESLint.

For example, [ eslint-plugin-markdown ](https://github.com/eslint/eslint-
plugin-markdown) contains a custom processor that lets you lint JavaScript
code inside of Markdown code blocks.

##  Formatters

An ESLint formatter controls the appearance of the linting results in the CLI.

For more information, refer to [ Formatters ](../formatters/) .

##  Integrations

One of the things that makes ESLint such a useful tool is the ecosystem of
integrations that surrounds it. For example, many code editors have ESLint
extensions that show you the ESLint results of your code in the file as you
work so that you don’t need to use the ESLint CLI to see linting results.

For more information, refer to [ Integrations ](../integrations) .

##  CLI & Node.js API

The ESLint CLI is a command line interface that lets you execute linting from
the terminal. The CLI has a variety of options that you can pass to its
commands.

The ESLint Node.js API lets you use ESLint programmatically from Node.js code.
The API is useful when developing plugins, integrations, and other tools
related to ESLint.

Unless you are extending ESLint in some way, you should use the CLI.

For more information, refer to [ Command Line Interface ](../command-line-
interface) and [ Node.js API ](../../integrate/nodejs-api) .

[ Edit this page ](

                
                    https://github.com/eslint/eslint/edit/main/docs/./src/use/core-concepts/index.md
                
                )

##  Table of Contents

  1. What is ESLint? 
  2. Rules 
    1. Rule Fixes 
    2. Rule Suggestions 
  3. Configuration Files 
  4. Shareable Configurations 
  5. Plugins 
  6. Parsers 
  7. Custom Processors 
  8. Formatters 
  9. Integrations 
  10. CLI & Node.js API 

##  Social Media

  * [ ](https://twitter.com/geteslint)
  * [ ](https://github.com/eslint/eslint)
  * [ ](https://eslint.org/chat)
  * [ ](https://fosstodon.org/@eslint)

© OpenJS Foundation and ESLint contributors, [ www.openjsf.org
](https://www.openjsf.org) . Content licensed under [ MIT License
](https://github.com/eslint/eslint/blob/main/LICENSE) .

##  Theme Switcher

Light  Dark

[ Change Language ](/languages/)

Language Switcher

Selecting a language will take you to the ESLint website in that language.

Language  🇺🇸 English (US) (Latest)  🇨🇳 简体中文 (最新)