/core-rules)
    * [ Governance ](/docs/latest/contribute/governance)
    * [ Report a Security Vulnerability ](/docs/latest/contribute/report-security-vulnerability)
  * [ Maintain ESLint ](/docs/latest/maintain/)
    * [ How ESLint is Maintained ](/docs/latest/maintain/overview)
    * [ Manage Issues and Pull Requests ](/docs/latest/maintain/manage-issues)
    * [ Review Pull Requests ](/docs/latest/maintain/review-pull-requests)
    * [ Manage Releases ](/docs/latest/maintain/manage-releases)
    * [ Working Groups ](/docs/latest/maintain/working-groups)

#  Extend ESLint

##  Table of Contents

  1. Ways to Extend ESLint 
  2. Create Plugins 
  3. Custom Rule Tutorial 
  4. Custom Rules 
  5. Custom Formatters 
  6. Custom Parsers 
  7. Custom Processors 
  8. Share Configurations 

This guide is intended for those who wish to extend the functionality of
ESLint.

In order to extend ESLint, it’s recommended that:

  * You know JavaScript, since ESLint is written in JavaScript. 
  * You have some familiarity with Node.js, since ESLint runs on it. 
  * You’re comfortable with command-line programs. 

If that sounds like you, then continue reading to get started.

##  [ Ways to Extend ESLint ](ways-to-extend)

This page summarizes the various ways that you can extend ESLint and how these
extensions all fit together.

##  [ Create Plugins ](plugins)

You’ve developed custom rules for ESLint and you want to share them with the
community. You can publish an ESLint plugin on npm.

##  [ Custom Rule Tutorial ](custom-rule-tutorial)

A tutorial that walks you through creating a custom rule for ESLint.

##  [ Custom Rules ](custom-rules)

This section explains how to create custom rules to use with ESLint.

##  [ Custom Formatters ](custom-formatters)

This section explains how you can create a custom formatter to control what
ESLint outputs.

##  [ Custom Parsers ](custom-parsers)

If you don’t want to use the default parser of ESLint, this section explains
how to create custom parsers.

##  [ Custom Processors ](custom-processors)

This section explains how you can use a custom processor to have ESLint
process files other than JavaScript.

##  [ Share Configurations ](shareable-configs)

This section explains how you can bundle and share ESLint configuration in a
JavaScript package.

[ Edit this page ](

                
                    https://github.com/eslint/eslint/edit/main/docs/./src/extend/index.md
                
                )

##  Table of Contents

  1. Ways to Extend ESLint 
  2. Create Plugins 
  3. Custom Rule Tutorial 
  4. Custom Rules 
  5. Custom Formatters 
  6. Custom Parsers 
  7. Custom Processors 
  8. Share Configurations 

##  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)  🇨🇳 简体中文 (最新)