Linter library choice

Hello all,

We need to have a linter tp keep our codebase clean, consistent, and close to the best practices is

Critria

  • developed by a community
  • good editor support (at least VSCode and Jetbrain’s IDEs)
  • extensible, to be able to support additional syntax on top of the ones we already use (javascript, typescript, vue…)

Candidates

Choice Matrix

Library Analysis Governance Github link License Editor Support Modular/Extensible
eslint accept standard for Vue 3 + supported by a community Community (part of https://openjsf.org/) GitHub - eslint/eslint: Find and fix problems in your JavaScript code. MIT accept yes, see Integrations - ESLint - Pluggable JavaScript Linter accept yes, see Ways to Extend ESLint - ESLint - Pluggable JavaScript Linter
quick-lint-js cancel no IDE support GitHub - quick-lint/quick-lint-js: quick-lint-js finds bugs in JavaScript programs GPL 3.0 error no support for Jetbrains IDEs cancel no
standardjs cancel not extensible GitHub - standard/standard: 🌟 JavaScript Style Guide, with linter & automatic code fixer MIT accept yes, see GitHub - standard/standard: 🌟 JavaScript Style Guide, with linter & automatic code fixer cancel no
putout cancel one main contributor, not popular enough
Build on top of eslint and babel, take a more radical stance on fixing and allow itself to apply fix than can change the semantics. error 1 main contributor GitHub - coderaiser/putout: 🐊 Pluggable and configurable JavaScript Linter, code transformer and formatter with built-in ESLint and Babel support for js, jsx typescript, flow, markdown, yaml and json. Write declarative codemods in a simplest possible way 😏 MIT accept yes
jshint cancel not extensible GitHub - jshint/jshint: JSHint is a tool that helps to detect errors and potential problems in your JavaScript code MIT cancel no accept yes
biome cancel not extensible, no IDE support GitHub - biomejs/biome: A toolchain for web projects, aimed to provide functionalities to maintain them. MIT cancel no support for Jetbrains IDEs cancel not

Conclusion

I suggest to use eslint are our linter. This is the default linter for Vue 3.

+1 for eslint