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 |
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 |
yes, see Integrations - ESLint - Pluggable JavaScript Linter
|
yes, see Ways to Extend ESLint - ESLint - Pluggable JavaScript Linter
|
quick-lint-js |
no IDE support |
|
GitHub - quick-lint/quick-lint-js: quick-lint-js finds bugs in JavaScript programs |
GPL 3.0 |
no support for Jetbrains IDEs |
no |
standardjs |
not extensible |
|
GitHub - standard/standard: 🌟 JavaScript Style Guide, with linter & automatic code fixer |
MIT |
yes, see GitHub - standard/standard: 🌟 JavaScript Style Guide, with linter & automatic code fixer
|
no |
putout |
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. |
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 |
|
yes |
|
jshint |
not extensible |
|
GitHub - jshint/jshint: JSHint is a tool that helps to detect errors and potential problems in your JavaScript code |
MIT |
no |
yes |
biome |
not extensible, no IDE support |
|
GitHub - biomejs/biome: A toolchain for web projects, aimed to provide functionalities to maintain them. |
MIT |
no support for Jetbrains IDEs |
not |
Conclusion
I suggest to use eslint are our linter. This is the default linter for Vue 3.