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:recommendedhas been updated with a few new rules:
Improved developer experience
- The default ignore patterns have been updated. ESLint will no longer ignore
bower_components/*by default. Additionally, it will now ignore nested
node_modulesdirectories by default.
- ESLint will now lint files with extensions other than
.jsif they are explicitly defined in
overrides.files– no need to use the
- ESLint now supports descriptions in directive comments, so things like disable comments can now be clearly documented!
- Additional validation has been added to the
RuleTesterclass 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
CLIEngineclass 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 new
ESLintclass provides an asynchronous API that ESLint core will now using going forward.
CLIEnginewill 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/.