ESLint v8.x end-of-life is 2024-10-05 and will not be maintained after that. Upgrade or consider long-term support options

ESLint 0.14.0 released

We just pushed ESLint 0.14.0, which is a minor release upgrade. This release includes new features and bug fixes.

Highlights

This is a summary of the major changes you need to know about for this version of ESLint.

More Language Options

0.14.0 adds more language options for parsing JavaScript, including:

  • ECMAScript 6 arrow functions
  • Global return statements (for use with Node.js scripts)

All of these options are off by default, and you can enable them in your configuration file. See Configuring ESLint for more information.

ECMAScript 6 fixes

With the introduction of ECMAScript 6 features, a lot of bugs popped up that had to be tracked down. We fixed a large number of bugs related to ES6 features so things like variable scoping should be fairly accurate now.

New Rule: indent

A rule covering indentation has been one of our long-requested features since ESLint began. We ported the logic from JSCS into a new rule, indent. It has been modified so it’s not exactly the same, and although we provided incorrect attribution initially, that has been fixed to comply with JSCS’s licensing terms. We thank the JSCS team for bringing this to our attention so we could ensure property attribution.

1.0.0 is Coming!

We expect to have only a small number of releases before 1.0.0 is released. Our goal is ensuring stability and trying to avoid breaking changes after 1.0.0. To that end, we are going to wait until we see breaking changes stop for a couple of releases before being ready to declare a release as 1.0.0.

Breaking Changes

  • Breaking: Exit code is now error count (Nicholas C. Zakas)
  • Breaking: remove implied eval check from no-eval (fixes #1202) (Mathias Schreck)
  • Breaking: Remove node from results (fixes #957) (Nicholas C. Zakas)
  • Breaking: Show error and warning counts in stylish summary (fixes #1746) (Brandon Mills)

Bug Fixes

  • Fix: Allow single line else-if (fixes #1739) (Nicholas C. Zakas)
  • Fix: comma-spacing for template literals (fixes #1736) (Nicholas C. Zakas)
  • Fix: Don’t crash when $HOME isn’t set (fixes #1465) (Nicholas C. Zakas)
  • Fix: Don’t throw error for arguments (fixes #1759) (Nicholas C. Zakas)
  • Fix: Don’t warn on computed nonliteral properties (fixes #1762) (Nicholas C. Zakas)
  • Fix: Ensure template string references count (fixes #1542) (Nicholas C. Zakas)
  • Fix: Make no-multi-spaces work for every case (fixes #1603, fixes #1659) (Nicholas C. Zakas)
  • Fix: no-undef to work with arrow functions (fixes #1604) (Nicholas C. Zakas)
  • Fix: Scoping issues for no-unused-vars (fixes #1733) (Nicholas C. Zakas)
  • Fix: Scoping issues for no-unused-vars (fixes #1741) (Nicholas C. Zakas)
  • Fix: Support exceptions in no-multi-spaces (fixes #1755) (Brandon Mills)

Features

  • New: Add predefined Meteor globals (fixes #1763) (Johan Brook)
  • New: Allow parser to be configured (fixes #1624) (Nicholas C. Zakas)
  • New: Rule indent (fixes #1022) (Dmitriy Shekhovtsov)
  • New: Rule indent (fixes #1022) (Dmitriy Shekhovtsov)
  • Revert “New: Rule indent (fixes #1022)” (Nicholas C. Zakas)

Enhancements

  • Update: Add getNodeByRangeIndex method (refs #1755) (Brandon Mills)
  • Update: Check all assignments for consistent-this (fixes #1513) (Timothy Jones)
  • Update: CLIEngine results include warning and error count (fixes #1732) (gyandeeps)
  • Update: Fast-path for empty input (fixes #546) (Nicholas C. Zakas)
  • Update: fix eslint indentations (fixes #1770) (Dmitriy Shekhovtsov)
  • Update: Fix indentation of comment (Nicholas C. Zakas)
  • Update: Improve CLIEngine.getFormatter() (refs #1723) (Nicholas C. Zakas)
  • Update: Make rules work with arrow functions (fixes #1508, fixes #1509, fixes #1493) (Nicholas C. Zakas)
  • Update: Replace getTokenByRange(Index->Start) (refs #1721) (Brandon Mills)

Dependency Upgrades

  • Upgrade: Espree to version 1.8.0 (Nicholas C. Zakas)

Documentation

  • Docs: Add Backbone plugin link (Ilya Volodin)
  • Docs: Added eslint-enable inline (Ivan Fraixedes)
  • Docs: Added double quotes for JSON keys for comma-spacing and key-spacing rule (Dmitry Polovka)
  • Docs: Correct getFormatter() documentation (refs #1723) (Nicholas C. Zakas)
  • Docs: fixed typo in consistent-return docs (Vitor Balocco)
  • Docs: fixed typo in no-lone-blocks docs (Vitor Balocco)
  • Docs: Forgotten parentheses in code snippet (Ivan Fraixedes)
  • Docs: use npm’s keyword route (Tom Vincent)

Build Related

  • Build: Add Node.js 0.12 testing (Nicholas C. Zakas)
  • Build: Update sitegen script (Closes #1725) (Ilya Volodin)

The latest ESLint news, case studies, tutorials, and resources.

ESLint v9.10.0 released
2 min read

ESLint v9.10.0 released

We just pushed ESLint v9.10.0, which is a minor release upgrade of ESLint. This release adds some new features and fixes several bugs found in the previous release.

Trunk becomes ESLint gold sponsor
1 min read

Trunk becomes ESLint gold sponsor

We are happy to announce that Trunk is a gold sponsor of ESLint. We are grateful to founders Eli Schleifer and David Apirian, as well as the whole Trunk team.