
Highlights
This release contains some exciting new features!
Autofixing of some rules
ESLint v1.4.0 introduces the --fix command line argument to automatically fix some rules. In this first release, we have implemented autofixing in three rules:
semieqeqeqquotes
When you run ESLint on the command line with the --fix flag, it will automatically fix any problems that it can (not all problems are fixable at once) and will not report the problems that were fixed.
This feature is still considered experimental but is backed up by a lot of unit tests verifying correctness. Still, we expect to find some edge cases that we didn’t anticipate, so we’d appreciate your feedback.
Limitations: the --fix flag does not work for piped-in text and has no effect on code that uses ESLint processors.
Cached results
If you’re running ESLint on a large codebase, you may find it can take a significant amount of time. To help in those situations, we’ve introduced the --cache flag. When --cache is present, ESLint will cache the results of the run in .eslintcache. The next time you run ESLint with the --cache flag, it will skip over any files that had no problems in the previous run unless they have been modified.
The cache is deleted the next time you run ESLint without --cache, so you can’t accidentally use it.
Command line globs
You can pass glob patterns to ESLint on the command line:
$ eslint lib/**/*.js
New rules
This release features several new rules:
Features
- New: Implement autofixing (fixes #3134) (Nicholas C. Zakas)
- New:
jsx-quotesrule (fixes #2011) (Mathias Schreck) - New: Implement cache in order to only operate on changed files since previous run. (fixes #2998) (Roy Riojas)
- New:
require-jsdocrule (fixes #1842) (Gyandeep Singh) - New: Support glob path on command line (fixes #3402) (Burak Yigit Kaya)
- New:
no-restricted-syntaxrule to forbid certain syntax (fixes #2422) (Burak Yigit Kaya) - New: Add --max-warnings flag to CLI (fixes #2769) (Kevin Partington)
- New: Add
parseras an option (fixes #3127) (Gyandeep Singh) - New:
space-before-keywordsrule (fixes #1631) (Marko Raatikka) - New: global-require rule (fixes #2318) (Jamund Ferguson)
Enhancements
- Update: Add Node 4 to travis builds (fixes #3697) (Ian VanSchooten)
- Update: Check for default assignment in no-unneeded-ternary (fixes #3232) (cjihrig)
- Update: Grouping related CLI options. (fixes #3612) (Kevin Partington)
- Update: Using @override does not require @param or @returns (fixes #3629) (Whitney Young)
- Update: Short circuit and ternary support in no-unused-expressions (fixes #2733) (David Warkentin)
- Update: Use
globalsmodule for thecommonjsglobals (fixes #3606) (Sindre Sorhus) - Update: Allowing inline comments to disable eslint rules (fixes #3472) (Whitney Young)
- Update: Add quotes around the label in
no-redeclareerror messages (fixes #3583) (Ian VanSchooten)
Bug Fixes
- Fix: Remove temporary
"allow-null"(fixes #3705) (Toru Nagashima) - Fix:
no-unused-varshad been crashed at/*global $foo*/(fixes #3714) (Toru Nagashima) - Fix: make getScope acquire innermost scope (fixes #3700) (voideanvalue)
- Fix: Allow whitespace in rule message parameters. (fixes #3690) (Kevin Partington)
- Fix: Eqeqeq rule with no option does not warn on ‘a == null’ (fixes #3699) (fediev)
- Fix:
no-unused-expressionswithallowShortCircuitfalse positive if left has no effect (fixes #3675) (Toru Nagashima) - Fix: Not check for punctuator if on same line as last var (fixes #3694) (Gyandeep Singh)
- Fix:
no-extra-bindto flag all arrow funcs (fixes #3672) (Nicholas C. Zakas) - Fix:
object-curly-spacinghad been crashing on an empty object pattern (fixes #3658) (Toru Nagashima) - Fix:
no-extra-parensfalse positive at IIFE with member accessing (fixes #3653) (Toru Nagashima) - Fix:
comma-danglewith"always"/"always-multiline"false positive after a rest element (fixes #3627) (Toru Nagashima) - Fix:
no-unused-varshad not shown correct locations for/*global(fixes #3617) (Toru Nagashima) - Fix:
space-after-keywordsnot working forcatch(fixes #3654) (Burak Yigit Kaya) - Fix: Incorrectly warning about ignored files (fixes #3649) (Burak Yigit Kaya)
- Fix: Indent rule VariableDeclarator doesn’t apply to arrow functions (fixes #3661) (Burak Yigit Kaya)
- Fix: Invalid env keys would cause an unhandled exception.(fixes #3265) (Ray Booysen)
- Fix:
consistent-as-neededmode withkeyword: true(fixes #3636) (Alex Guerrero) - Fix:
indentshould only indent chain calls if the first call is single line (fixes #3591) (Burak Yigit Kaya) - Fix:
quote-propsshould not crash for object rest spread syntax (fixes #3595) (Joakim Carlstein) - Fix:
no-useless-concatfalse positive at numbers (fixes #3575, fixes #3589) (Toru Nagashima) - Fix: line number for duplicate object keys error (fixes #3573) (Elliot Lynde)
Documentation
- Docs: Add new formatters to API docs (Ian VanSchooten)
- Docs: Fix spelling mistake (domharrington)
- Docs: Make
quotesdocs clearer (fixes #3646) (Nicholas C. Zakas) - Docs: Update README with release and sponsor info (Nicholas C. Zakas)
- Docs: Add linting for second half of rule docs (refs #2271) (Ian VanSchooten)
- Docs: Fixing typos in plugin processor section. (fixes #3648) (Kevin Partington)
- Docs: Fixing broken link in documentation (Ilya Volodin)
- Docs: Use eslint-env in no-undef (fixes #3616) (Ian VanSchooten)
- Docs: Replace to npmjs.com (Ryuichi Okumura)
- Docs: Including for(;;) as valid case in no-constant-condition (Kevin Partington)
- Docs: correct contributing URL (Dieter Luypaert)
Dependency Upgrades
- Upgrade: Consuming handlebars@^4.0.0 (fixes #3632) (Kevin Partington)