ESLint 0.8.0 released

We just pushed ESLint 0.8.0, which is the minor release upgrade from 0.7.4. This release includes new features, bug fixes, and performance improvements.

Highlights

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

Plugins

This is the first version of ESLint that formally supports shareable plugins. Currently, plugins allow you to bundle several rules together and publish them on npm. This allows you to share groups of rules easily with others. Creating plugins is very simple:

  1. Create an npm package with the name eslint-plugin-{your plugin name} such as eslint-plugin-foo.
  2. Export an object that has a rules property. The rules property should contain keys that are your rule IDs and values that are the rule implementation.

For more information, see the plugins documentation.

Ignore files

Due to some feedback we received regarding .eslintignore files, we have decided to automatically duplicate and append /** to every entry in the file. This is to address the issue where simple directory names would not match files within that directory. For example, using node_modules/ would not ignore all files in node_modules/, so now we will use that rule plus node_modules/** to ensure all files in the directory are ignored.

Performance improvements

There were several fixes made to improve performance. On our benchmark, we’ve sped up processing time by 100-200ms (roughly a 10% improvement).

no-global-strict is now global-strict

In an effort to embrace different coding preferences, we’ve changed the no-global-strict rule (which disallowed "use strict" in the global scope) to [global-strict](https://eslint.org/docs/rules/global-strict). This allows you to either enforce or disallow global "use strict".

CLIEngine exported, cli deprecated

ESLint now exports the CLIEngine interface, which is what powers the ESLint command line utility. If you are writing plugins for other systems that make use of the ESLint cli object, then you should transition to using CLIEngine instead.

The cli object will stop being exported in a future version of ESLint.

Breaking Changes

Features

Bug Fixes

Enhancements

Documentation