ESLint is an open source JavaScript linting utility and an At-Large project at the OpenJS Foundation.

Congrats to the ESLint team on their most recent release, v7.0.0! This new release brings new updates including improved developer experience, core rule changes, new ESLint
class, and much more.
ESLint v7.0.0 Highlights:
Dropping support for Node.js v8
Node.js 8 reached EOL in December 2019, and we are officially dropping support for it in this release.
Core rule changes
- The ten Node.js/CommonJS rules in core have been deprecated and moved to the eslint-plugin-node plugin.
- Several rules have been updated to recognize bigint literals and warn on more cases by default.
eslint:recommended
has been updated with a few new rules:no-dupe-else-if
,no-import-assign
, andno-setter-return
.
Improved developer experience
- The default ignore patterns have been updated. ESLint will no longer ignore
.eslintrc.js
andbower_components/*
by default. Additionally, it will now ignore nestednode_modules
directories by default. - ESLint will now lint files with extensions other than
.js
if they are explicitly defined inoverrides[].files
– no need to use the--ext
flag! - ESLint now supports descriptions in directive comments, so things like disable comments can now be clearly documented!
- Additional validation has been added to the
RuleTester
class to improve testing custom rules in plugins. - ESLint will now resolve plugins relative to the entry configuration file. This means that shared configuration files that are located outside the project can now be colocated with the plugins they require.
- Starting in ESLint v7, configuration files and ignore files passed to ESLint using the –config path/to/a-config and –ignore-path path/to/a-ignore CLI flags, respectively, will resolve from the current working directory rather than the file location. This allows for users to utilize shared plugins without having to install them directly in their project.
New ESLint class
- The
CLIEngine
class provides a synchronous API that is blocking the implementation of features such as parallel linting, supporting ES modules in shareable configs/parsers/plugins/formatters, and adding the ability to visually display the progress of linting runs. The newESLint
class provides an asynchronous API that ESLint core will now using going forward.CLIEngine
will remain in core for the foreseeable future but may be removed in a future major version.
Check out the release notes for all updates here and the migration guide here.
For more information on ESLint and how to get involved go to https://eslint.org/.