Now available: ESLint v0.1.0
Since that time, I’ve been joined by 28 contributors who have implemented new rules, fixed bugs, wrote documentation, and otherwise contributed to the ongoing development of ESLint. Without their help, it probably would have taken several more months to reach the point we’re at now. I’d like to especially call out the work of Ian Christian Myers, Ilya Volodin, Matt DuVall, James Allardice, and Michael Ficarra for their constant and ongoing work, participation in conversations, and dedication to the project.
Today I’m excited to announce version 0.1.0 is available. This is the first alpha version that is ready for people to start using and give us feedback on. Up until this point, the tool was in a state of constant flux and I didn’t feel comfortable recommending anyone use it. I wanted to get ESLint as close to the ruleset of JSHint before deeming it ready for use, and we are finally there. We have (as best we can tell), nearly 100% coverage of the JSHint rules that don’t apply to formatting (white space and other code convention rules).
Here’s what this release gives you:
- Most of the JSHint rules (that don’t apply to formatting issues)
- New rules can be loaded at runtime
- Specification of shared settings using
- Configure rules as disabled, warnings, or errors
- Output results as Checkstyle, compact, JSLint-XML, or JUnit formats
- 95% or higher code coverage for statements, branches, functions, and lines
As this is an early alpha release of ESLint, there are some issues we are aware of that need addressing:
- Performance – on large files, ESLint can be around 3x slower that JSHint. This has to do with the number of times we are traversing the AST to gather information. We will be focusing on reducing these traversals to speed up execution.
- Edge cases – there are almost certainly edge cases for each rule that we have not accounted for. We spent a lot of time looking through JSHint and JSLint code to try and figure out exact patterns to catch. If you find an edge case, please let us know.
- No web UI – this is on the roadmap, and we are looking for someone to lead this initiative.
- Documentation gaps – we have some good documentation but there are definitely some gaps. We will be working on filling those gaps.
Things that may change
Since this is the first alpha release, there are several things that may change going forward. Some of the potential changes are:
- Removal of rules that don’t make sense
- Renaming of rules
- Splitting up of rules into more granular rules
- Internal API changes (developers – be careful)
- Internal Testing framework changes
Whenever possible, we will make changes in a backwards-compatible manner, but given the early stage of this project I can’t make any promises in this regard.
ESLint runs exclusively on Node.js, and is best installed using npm:
npm i -g [email protected]
ESLint requires Node.js 0.8 or higher.
At this point, what we really need is feedback from you. You can send in general feedback to the mailing list or file an issue if there’s a problem or you’d like to request a feature. Your input will help us make ESLint even better going forward.
Disclaimer: Any viewpoints and opinions expressed in this article are those of Nicholas C. Zakas and do not, in any way, reflect those of my employer, my colleagues, Wrox Publishing, O'Reilly Publishing, or anyone else. I speak only for myself, not for them.