Breaking change to ESLint config files

In the next version of ESLint, there is a breaking change to remove the capability to use JavaScript files as configuration files. All configuration files must be in JSON format.

In previous versions of ESLint, it was possible to use JavaScript files as configuration files on the command line, such as:

eslint -c config.js file-to-lint.js

Configuration files written in JavaScript looked like this:

module.exports = {

rules: {
semi: 2
}
};

The capability to use JavaScript files as configuration files is being removed in version 0.3.0. All configuration files must be in JSON format from now on.

Why the change?

The ability to use JavaScript configuration files was an unintended consequence of using require() as a shortcut for loading JSON files. Because require() will automatically parse files ending with a .json extension into JSON objects, this shortcut was used as a convenience. Unfortunately, this also limited the ability to name configuration files with a different extension (see related issue).

Since JavaScript configuration files were never officially supported, and JSON files are supposed to be the format of choice for configuration files in ESLint, we made the decision to remove the capability to use JavaScript configuration files. Moving away from using require() means that all configuration files will be parsed as JSON.

What do you have to do?

If you have been using a JavaScript configuration file for ESLint, please convert it to a JSON file instead.

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

ESLint v8.22.0 released
1 min read

ESLint v8.22.0 released

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

Redesigning ESLint
5 min read

Redesigning ESLint

A brief insight into ESLint's recent brand refresh and website redesign.