Rules have been at the core of ESLint since the very first release. We’ve gone through several development cycles of rules, first trying to replicate JSHint rules, creating ECMAScript 6 rules as best practices were being uncovered, shooting for feature parity with JSCS rules, and so on. Now, almost three years after ESLint was first created, we have over 200 rules in the core and continue to get new rule proposals every week.
After a lot of deliberation, we’ve decided that we will only be accepting new rules into ESLint when the team believes that not doing so would do more harm than good. For instance, we are committed to helping people transfer from other linters to ESLint, and so we will still consider adding rules that make the transition easier. Similarly, if a rule flags a potentially serious or difficult-to-identify error, then we will consider it as well. Otherwise, we’ll be suggesting that people implement their own rules with plugins from now on.
The community has written some excellent articles and tutorials about writing your own rules. Here are a few to get you started:
- Project-specific Lint Rules with ESLint
- Creating Custom Rules for ESLint
There are a lot of great things ahead for ESLint, and we hope you’ll take this opportunity to learn more about writing and publishing your own rules.