ESLint v3.4.0 released

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

Highlights

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

Fix For Configuring Scoped Plugin Rules

We discovered a significant bug (#6362) when using scoped plugins. Scoped plugins use npm scopes such as @foo/eslint-plugin-bar. Due to a bug in ESLint, if you had a rule baz in the plugin @foo/eslint-plugin-bar, you would have to configure it without the scope, such as:

rules:bar/baz:error

This is problematic because it’s possible that an unscoped plugin eslint-plugin-bar might exist and need to be configured in the same way.

Important: Starting in this release, you should now configure scoped plugin rules using the scope as a prefix. The previous example should now be written as:

rules:@foo/bar/baz:error

The other format will continue work until we release ESLint v4.0.0, at which point only the format using the package scope will work. We encourage you to update your configuration files as quickly as possible so as not to be caught up in the change for version 4.0.0.

Performance Improvements

We’ve been steadily improving the performance of traversing directories in ESLint. Previously, we made a change that dramatically improved the speed of directory traversal for those who weren’t using .eslintignore (#5679). In this release, we’ve continued on to improve the speed for those using .eslintignore as well (#6710).

New Ways to Configure ECMAScript Version

ESLint has supported the ecmaVersion property for specifying which versions of ECMAScript syntax to enable. Prior to this release, you could use 3, 5, 6, and 7. However, the official ECMAScript standard is now being defined by year, so some new users found this confusing. As such, we’ve added the ability to use 2015 and 2016 in the ecmaVersion field (these correspond to 6 and 7, respectively), so that going forward we can use the more appropriate year-based values.