NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #823 most downloaded on npm
Import with sanity.
Last release 1 years ago
20 Jun 2025
Release timing varies
gaps range from 3 weeks to 9 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
4 versions withdrawn
withdrawn after publishing
12 years old
132 releases · first in 2015
add enforce-node-protocol-usage rule and import/node-version setting ( #3024 , thanks @GoldStrikeArch and @sevenc-nanashi )
enforce-node-protocol-usage rule and import/node-version setting (#3024, thanks @GoldStrikeArch and @sevenc-nanashi)extensions: add `pathGroupOverrides to allow enforcement decision overrides based on specifier (#3105, thanks @Xunnamius)order: add sortTypesGroup option to allow intragroup sorting of type-only imports (#3104, thanks @Xunnamius)order: add newlines-between-types option to control intragroup sorting of type-only imports (#3127, thanks @Xunnamius)order: add consolidateIslands option to collapse excess spacing for aesthetically pleasing imports (#3129, thanks @Xunnamius)no-unused-modules: provide more meaningful error message when no .eslintrc is present (#3116, thanks @michaelfaith)order: ensure arcane imports do not cause undefined behavior (#3128, thanks @Xunnamius)order: resolve undefined property access issue when using named ordering (#3166, thanks @Xunnamius)enforce-node-protocol-usage: avoid a crash with some TS code (#3173, thanks @ljharb)order: codify invariants from docs into config schema (#3152, thanks @Xunnamius)extensions, order: improve documentation (#3106, thanks @Xunnamius)tseslint.config() (#3125, thanks @lnuvy)order: remove unnecessary negative check (#3167, thanks @JounQin)no-unused-modules: add missing double quote (#3191, thanks @albertpastrana)no-restricted-paths: clarify wording and fix errors (#3172, thanks @greim)One column per quarter.
support eslint v9 ( #2996 , thanks @G-Rath @michaelfaith )
order: allow validating named imports (#3043, thanks @manuth)extensions: add the checkTypeImports option (#2817, thanks @phryneas)ExportMap / flat config: include languageOptions in context (#3052, thanks @michaelfaith)no-named-as-default: Allow using an identifier if the export is both a named and a default export (#3032, thanks @akwodkiewicz)export: False positive for exported overloaded functions in TS (#3065, thanks @liuxingbaoyu)exportMap: export map cache is tainted by unreliable parse results (#3062, thanks @michaelfaith)exportMap: improve cacheKey when using flat config (#3072, thanks @michaelfaith)no-relative-packages: fix typo (#3066, thanks @joshuaobrien)no-cycle: dont scc for each linted file (#3068, thanks @soryy708)no-cycle: add disableScc to docs (#3070, thanks @soryy708)RuleTester (#3071, thanks @G-Rath)no-restricted-paths: fix grammar (#3073, thanks @unbeauvoyage)no-default-export, no-named-export: add test case (thanks @G-Rath)[dynamic-import-chunkname]: add allowEmpty option to allow empty leading comments ([#2942], thanks [@JiangWeixian])
dynamic-import-chunkname: add allowEmpty option to allow empty leading comments (#2942, thanks [@JiangWeixian])dynamic-import-chunkname: Allow empty chunk name when webpackMode: 'eager' is set; add suggestions to remove name in eager mode (#3004, thanks @amsardesai)no-unused-modules: Add ignoreUnusedTypeExports option (#3011, thanks @silverwind)no-extraneous-dependencies: allow wrong path (#3012, thanks @chabb)no-cycle: use scc algorithm to optimize (#2998, thanks @soryy708)no-duplicates: Removing duplicates breaks in TypeScript (#3033, thanks @yesl-kim)newline-after-import: fix considerComments option when require (#2952, thanks @developer-bandi)order: do not compare first path segment for relative paths (#2682) (#2885, thanks @mihkeleidast)no-extraneous-dependencies: Make glob pattern description more explicit (#2944, thanks @mulztob)no-unused-modules: add console message to help debug #2866ExportMap: make procedures static instead of monkeypatching exportmap (#2982, thanks @soryy708)ExportMap: separate ExportMap instance from its builder logic (#2985, thanks @soryy708)order: Add a quick note on how unbound imports and --fix (#2640, thanks @minervabot)exportMapBuilder: avoid hoisting (#2989, thanks @soryy708)ExportMap: extract "builder" logic to separate files (#2991, thanks @soryy708)order: update the description of the pathGroupsExcludedImportTypes option (#3036, thanks @liby)Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.29.0...v2.29.1
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.29.0...v2.29.1
no-extraneous-dependencies]: ignore export type { ... } from '...' when includeTypes is false ([#2919], thanks [@Pandemic1617])no-unused-modules]: support export patterns with array destructuring ([#2930], thanks [@ljharb])tsconfig-paths ([#2447], thanks [@domdomegg])Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.28.1...v2.29.0
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.28.1...v2.29.0
newline-after-import]: new option exactCount and docs update ([#1933], thanks [@anikethsaha] and [@reosarevok])newline-after-import]: fix exactCount with considerComments false positive, when there is a leading comment ([#2884], thanks [@kinland])Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.28.0...v2.28.1
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.28.0...v2.28.1
order]: revert breaking change to single nested group ([#2854], thanks [@yndajas])Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.27.5...v2.28.0
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.27.5...v2.28.0
no-duplicates]: remove duplicate identifiers in duplicate imports ([#2577], thanks [@joe-matsec])consistent-type-specifier-style]: fix accidental removal of comma in certain cases ([#2754], thanks [@bradzacher])ExportMap: Improve ExportMap.for performance on larger codebases ([#2756], thanks [@leipert])no-extraneous-dependencies]/TypeScript: do not error when importing inline type from dev dependencies ([#2735], thanks [@andyogo])newline-after-import]/TypeScript: do not error when re-exporting a namespaced import ([#2832], thanks [@laurens-dg])order]: partial fix for [#2687] (thanks [@ljharb])no-duplicates]: Detect across type and regular imports ([#2835], thanks [@benkrejci])extensions]: handle . and .. properly ([#2778], thanks [@benasher44])no-unused-modules]: improve schema (thanks [@ljharb])no-unused-modules]: report error on binding instead of parent export ([#2842], thanks [@Chamion])no-duplicates]: fix example schema ([#2684], thanks [@simmo])group-exports]: fix syntax highlighting ([#2699], thanks [@devinrhode2])extensions]: reference node ESM behavior ([#2748], thanks [@xM8WVqaG])exports-last]: use array.prototype.findlastindex (thanks [@ljharb])no-anonymous-default-export]: use object.fromentries (thanks [@ljharb])no-unused-modules]: use array.prototype.flatmap (thanks [@ljharb])Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.27.4...v2.27.5
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.27.4...v2.27.5
order]: Fix group ranks order when alphabetizing ([#2674], thanks [@Pearce-Ropion])Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.27.3...v2.27.4
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.27.3...v2.27.4
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.27.2...v2.27.3
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.27.2...v2.27.3
no-empty-named-blocks]: rewrite rule to only check import declarations ([#2666], thanks [@EvHaus])Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.27.1...v2.27.2
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.27.1...v2.27.2
no-duplicates]: do not unconditionally require typescript ([#2665], thanks [@DerekWW])Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.27.0...v2.27.1
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.27.0...v2.27.1
array.prototype.flatmap should be a prod dep ([#2664], thanks [@cristobal])Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.26.0...v2.27.0
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.26.0...v2.27.0
newline-after-import]: add considerComments option ([#2399], thanks [@pri1311])no-cycle]: add allowUnsafeDynamicCyclicDependency option ([#2387], thanks [@GerkinDev])no-restricted-paths]: support arrays for from and target options ([#2466], thanks [@AdriAt360])no-anonymous-default-export]: add allowNew option ([#2505], thanks [@DamienCassou])order]: Add distinctGroup option ([#2395], thanks [@hyperupcall])no-extraneous-dependencies]: Add includeInternal option ([#2541], thanks [@bdwain])no-extraneous-dependencies]: Add includeTypes option ([#2543], thanks [@bdwain])order]: new alphabetize.orderImportKind option to sort imports with same path based on their kind (type, typeof) ([#2544], thanks [@stropho])consistent-type-specifier-style]: add rule ([#2473], thanks [@bradzacher])no-empty-named-blocks] rule ([#2568], thanks [@guilhermelimak])prefer-default-export]: add "target" option ([#2602], thanks [@azyzz228])no-absolute-path]: add fixer ([#2613], thanks [@adipascu])no-duplicates]: support inline type import with inlineTypeImport option ([#2475], thanks [@snewcomer])order]: move nested imports closer to main import entry ([#2396], thanks [@pri1311])no-restricted-paths]: fix an error message ([#2466], thanks [@AdriAt360])no-restricted-paths]: use Minimatch.match instead of minimatch to comply with Windows Native paths ([#2466], thanks [@AdriAt360])order]: require with member expression could not be fixed if alphabetize.order was used ([#2490], thanks [@msvab])order]: leave more space in rankings for consecutive path groups ([#2506], thanks [@Pearce-Ropion])no-cycle]: add ExportNamedDeclaration statements to dependencies ([#2511], thanks [@BenoitZugmeyer])dynamic-import-chunkname]: prevent false report on a valid webpack magic comment ([#2330], thanks [@mhmadhamster])export]: do not error on TS export overloads ([#1590], thanks [@ljharb])no-unresolved], [extensions]: ignore type only exports ([#2436], thanks [@Lukas-Kullmann])ExportMap: add missing param to function ([#2589], thanks [@Fdawgs])no-unused-modules]: checkPkgFieldObject filters boolean fields from checks ([#2598], thanks [@mpint])no-cycle]: accept Flow typeof imports, just like type ([#2608], thanks [@gnprice])no-import-module-exports]: avoid a false positive for import variables ([#2315], thanks [@BarryThePenguin])named]: Run all TypeScript test ([#2427], thanks [@ProdigySim])import/extensions section ([#2440], thanks [@OutdatedVersion])order]: use correct default value ([#2392], thanks [@hyperupcall])eslint-import-resolver-typescript usage ([#2503], thanks [@JounQin])no-cycle]: Add per-run caching of traversed paths ([#2419], thanks [@nokel81])ExportMap: add caching after parsing for an ambiguous module ([#2531], thanks [@stenin-nikita])no-useless-path-segments]: fix paths ([#2424], thanks [@s-h-a-d-o-w])no-cycle]: add passing test cases ([#2438], thanks [@georeith])no-extraneous-dependencies] improve performance using cache ([#2374], thanks [@meowtec])CONTRIBUTING.md: mention inactive PRs ([#2546], thanks [@stropho])no-restricted-paths]: Tests for import type statements ([#2459], thanks [@golergka])no-restricted-paths]: fix one failing import type test case, submitted by [@golergka], thanks [@azyzz228]eslint-doc-generator to v1.0.0 ([#2605], thanks [@bmish])no-cycle], [no-internal-modules], [no-restricted-paths]: use anyOf instead of oneOf (thanks [@ljharb], [@remcohaszing])Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.25.4...v2.26.0
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.25.4...v2.26.0
no-named-default], [no-default-export], [prefer-default-export], [no-named-export], [export], [named], [namespace], [no-unused-modules]: support arbitrary module namespace names ([#2358], thanks [@sosukesuzuki])no-dynamic-require]: support dynamic import with espree ([#2371], thanks [@sosukesuzuki])no-relative-packages]: add fixer ([#2381], thanks [@forivall])default]: typescript-eslint-parser: avoid a crash on exporting as namespace (thanks [@ljharb])export]/TypeScript: false positive for typescript namespace merging ([#1964], thanks [@magarcia])no-duplicates]: ignore duplicate modules in different TypeScript module declarations ([#2378], thanks [@remcohaszing])no-unused-modules]: avoid a crash when processing re-exports ([#2388], thanks [@ljharb])no-nodejs-modules]: add tests for node protocol URL ([#2367], thanks [@sosukesuzuki])default], [no-anonymous-default-export], [no-mutable-exports], [no-named-as-default-member], [no-named-as-default]: add tests for arbitrary module namespace names ([#2358], thanks [@sosukesuzuki])no-unresolved]: Fix RegExp escaping in readme ([#2332], thanks [@stephtr])namespace]: try to improve performance ([#2340], thanks [@ljharb])order]: TS code examples should use TS code blocks ([#2411], thanks [@MM25Zamanian])no-unresolved]: fix link ([#2417], thanks [@kylemh])Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.25.3...v2.25.4
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.25.3...v2.25.4
importType: avoid crashing on a non-string' ([#2305], thanks [@ljharb])first]: prevent crash when parsing angular templates ([#2210], thanks [@ljharb])importType: properly resolve @/*-aliased imports as internal ([#2334], thanks [@ombene])named]/ExportMap: handle named imports from CJS modules that use dynamic import ([#2341], thanks [@ludofischer])no-default-import]: report on the token "default" instead of the entire node ([#2299], thanks [@pmcelhaney])order]: Remove duplicate mention of default ([#2280], thanks [@johnthagen])eslint-module-utilsFull Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.25.2...v2.25.3
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.25.2...v2.25.3
extensions]: ignore unresolveable type-only imports ([#2270], [#2271], thanks [@jablko])importType: fix isExternalModule calculation ([#2282], thanks [@mx-bernhard])no-import-module-exports]: avoid false positives with a shadowed module or exports ([#2297], thanks [@ljharb])order]: add type to the default groups ([#2272], thanks [@charpeni])importType: combine redundant isScoped and isScopedModule (thanks [@ljharb])Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.25.1...v2.25.2
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.25.1...v2.25.2
eslint-module-utils for real this time ([#2255], thanks [@ljharb])Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.25.0...v2.25.1
Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.25.0...v2.25.1
[Tests] use ESLint class in cli test by @ota-meshi in https://github.com/import-js/eslint-plugin-import/pull/2208
cli test by @ota-meshi in https://github.com/import-js/eslint-plugin-import/pull/2208no-unused-modules: add eslint v8 support by @coderaiser in https://github.com/import-js/eslint-plugin-import/pull/2194no-restricted-paths support glob patterns by @stropho in https://github.com/import-js/eslint-plugin-import/pull/2219no-unresolved: add caseSensitiveStrict option by @sergei-startsev in https://github.com/import-js/eslint-plugin-import/pull/1262no-unused-modules: support dynamic imports by @maxkomarychev in https://github.com/import-js/eslint-plugin-import/pull/1660pkg-up and read-pkg-up by @mgwalker in https://github.com/import-js/eslint-plugin-import/pull/2047order: Fix import ordering in TypeScript module declarations by @remcohaszing in https://github.com/import-js/eslint-plugin-import/pull/2226no-unresolved, no-extraneous-dependencies: moduleVisitor usage by @jablko in https://github.com/import-js/eslint-plugin-import/pull/2233Full Changelog: https://github.com/import-js/eslint-plugin-import/compare/v2.24.2...v2.25.0
eslint v8 ([#2191], thanks [@ota-meshi])no-unresolved]: add caseSensitiveStrict option ([#1262], thanks [@sergei-startsev])no-unused-modules]: add eslint v8 support ([#2194], thanks [@coderaiser])no-restricted-paths]: add/restore glob pattern support ([#2219], thanks [@stropho])no-unused-modules]: support dynamic imports ([#1660], [#2212], thanks [@maxkomarychev], [@aladdin-add], [@Hypnosphi])no-unresolved]: ignore type-only imports ([#2220], thanks [@jablko])order]: fix sorting imports inside TypeScript module declarations ([#2226], thanks [@remcohaszing])default], ExportMap: Resolve extended TypeScript configuration files ([#2240], thanks [@mrmckeb])pkg-up and read-pkg-up ([#2047], thanks [@mgwalker]).d.ts from [import/parsers setting] and [import/extensions setting] ([#2220], thanks [@jablko])no-unresolved], [no-extraneous-dependencies]: moduleVisitor usage ([#2233], thanks [@jablko])[named], [namespace]: properly handle ExportAllDeclarations ([#2199], thanks [@ljharb])
named], [namespace]: properly handle ExportAllDeclarations ([#2199], thanks [@ljharb])https://github.com/import-js/eslint-plugin-import/blob/v2.24.1/CHANGELOG.md#2241---2021-08-19
https://github.com/import-js/eslint-plugin-import/blob/v2.24.1/CHANGELOG.md#2241---2021-08-19
ExportMap: Add default export when esModuleInterop is true and anything is exported ([#2184], thanks [@Maxim-Mazurok])named], [namespace]: properly set reexports on export * as … from ([#1998], [#2161], thanks [@ljharb])no-duplicates]: correctly handle case of mixed default/named type imports ([#2149], thanks [@GoodForOneFare], [@nwalters512])no-duplicates]: avoid crash with empty import type {} ([#2201], thanks [@ljharb])max-dependencies: 📖 Document ignoreTypeImports option ([#2196], thanks [@himynameisdave])https://github.com/import-js/eslint-plugin-import/blob/v2.24.0/CHANGELOG.md#2240---2021-08-08
https://github.com/import-js/eslint-plugin-import/blob/v2.24.0/CHANGELOG.md#2240---2021-08-08
no-dynamic-require]: add option esmodule ([#1223], thanks [@vikr01])named]: add commonjs option ([#1222], thanks [@vikr01])no-namespace]: Add ignore option ([#2112], thanks [@aberezkin])max-dependencies]: add option ignoreTypeImports ([#1847], thanks [@rfermann])no-duplicates]: ensure autofix avoids excessive newlines ([#2028], thanks [@ertrzyiks])extensions]: avoid crashing on partially typed import/export statements ([#2118], thanks [@ljharb])no-extraneous-dependencies]: add ESM intermediate package.json support ([#2121], thanks [@paztis])context.getPhysicalFilename() when available (ESLint 7.28+) ([#2160], thanks [@pmcelhaney])extensions]/importType: fix isScoped treating @/abc as scoped module ([#2146], thanks [@rperello])extensions]: improved cases for using @/... ([#2140], thanks [@wenfangdu])extensions]: removed incorrect cases ([#2138], thanks [@wenfangdu])order]: add tests for pathGroupsExcludedImportTypes: ['type'] ([#2158], thanks [@atav32])order]: improve the documentation for the pathGroupsExcludedImportTypes option ([#2156], thanks [@liby])no-cycle]: Restructure test files ([#1517], thanks [@soryy708])https://github.com/import-js/eslint-plugin-import/blob/v2.23.4/CHANGELOG.md#2234---2021-05-29
https://github.com/import-js/eslint-plugin-import/blob/v2.23.4/CHANGELOG.md#2234---2021-05-29
no-import-module-exports]: Don't crash if packages have no entrypoint ([#2099], thanks [@eps1lon])no-extraneous-dependencies]: fix package name algorithm ([#2097], thanks [@paztis])https://github.com/import-js/eslint-plugin-import/blob/v2.23.3/CHANGELOG.md#2233---2021-05-21
https://github.com/import-js/eslint-plugin-import/blob/v2.23.3/CHANGELOG.md#2233---2021-05-21
no-restricted-paths]: fix false positive matches ([#2090], thanks [@malykhinvi])no-cycle]: ignore imports where imported file only imports types of importing file ([#2083], thanks [@cherryblossom000])no-cycle]: fix false negative when file imports a type after importing a value in Flow ([#2083], thanks [@cherryblossom000])order]: restore default behavior unless type is in groups ([#2087], thanks [@grit96])no-relative-packages] to list of to the list of rules ([#2075], thanks [@arvigeus])https://github.com/import-js/eslint-plugin-import/blob/v2.23.2/CHANGELOG.md#2232---2021-05-15
https://github.com/import-js/eslint-plugin-import/blob/v2.23.2/CHANGELOG.md#2232---2021-05-15
safe-publish-latest; use prepublishOnly script for npm 7+https://github.com/import-js/eslint-plugin-import/blob/aa8d566b288eb0fdce24f3a51f8a65cf520c2133/CHANGELOG.md#2231---2021-05-14
https://github.com/import-js/eslint-plugin-import/blob/aa8d566b288eb0fdce24f3a51f8a65cf520c2133/CHANGELOG.md#2231---2021-05-14
newline-after-import]: fix crash with export {} syntax ([#2063], [#2056], thanks [@ljharb])ExportMap: do not crash when tsconfig lacks .compilerOptions ([#2067], thanks [@ljharb])order]: fix alphabetical sorting ([#2071], thanks [@grit96])https://github.com/benmosher/eslint-plugin-import/blob/v2.23.0/CHANGELOG.md#2230---2021-05-13
https://github.com/benmosher/eslint-plugin-import/blob/v2.23.0/CHANGELOG.md#2230---2021-05-13
no-commonjs]: Also detect require calls with expressionless template literals: require(`x`) ([#1958], thanks [@FloEdelmann])no-internal-modules]: Add forbid option ([#1846], thanks [@guillaumewuip])no-relative-packages] ([#1860], [#966], thanks [@tapayne88] [@panrafal])no-import-module-exports] rule: report import declarations with CommonJS exports ([#804], thanks [@kentcdodds] and [@ttmarek])no-unused-modules]: Support destructuring assignment for export. ([#1997], thanks [@s-h-a-d-o-w])order]: support type imports ([#2021], thanks [@grit96])order]: Add warnOnUnassignedImports option to enable warnings for out of order unassigned imports ([#1990], thanks [@hayes])export]/TypeScript: properly detect export specifiers as children of a TS module block ([#1889], thanks [@andreubotella])order]: ignore non-module-level requires ([#1940], thanks [@golopot])no-webpack-loader-syntax]/TypeScript: avoid crash on missing name ([#1947], thanks [@leonardodino])no-extraneous-dependencies]: Add package.json cache ([#1948], thanks [@fa93hws])prefer-default-export]: handle empty array destructuring ([#1965], thanks [@ljharb])no-unused-modules]: make type imports mark a module as used (fixes [#1924]) ([#1974], thanks [@cherryblossom000])no-cycle]: fix perf regression ([#1944], thanks [@Blasz])first]: fix handling of import = require ([#1963], thanks [@MatthiasKunnen])no-cycle]/[extensions]: fix isExternalModule usage ([#1696], thanks [@paztis])extensions]/[no-cycle]/[no-extraneous-dependencies]: Correct module real path resolution ([#1696], thanks [@paztis])no-named-default]: ignore Flow import type and typeof ([#1983], thanks [@christianvuerings])no-extraneous-dependencies]: Exclude flow typeof imports ([#1534], thanks [@devongovett])newline-after-import]: respect decorator annotations ([#1985], thanks [@lilling])no-restricted-paths]: enhance performance for zones with except paths ([#2022], thanks [@malykhinvi])no-unresolved]: check import() ([#2026], thanks [@aladdin-add])no-named-as-default]: add semicolon ([#1897], thanks [@bicstone])no-extraneous-dependencies]: correct peerDependencies option default to true ([#1993], thanks [@dwardu])order]: Document options required to match ordering example ([#1992], thanks [@silviogutierrez])no-unresolved]: add tests for import() ([#2012], thanks [@davidbonnet])https://github.com/benmosher/eslint-plugin-import/blob/v2.22.1/CHANGELOG.md#2221---2020-09-27
https://github.com/benmosher/eslint-plugin-import/blob/v2.22.1/CHANGELOG.md#2221---2020-09-27
default]/TypeScript: avoid crash on export = with a MemberExpression ([#1841], thanks [@ljharb])extensions]/importType: Fix @/abc being treated as scoped module ([#1854], thanks [@3nuc])dynamic-import-chunkname]: allow single quotes to match Webpack support ([#1848], thanks [@straub])export]: add tests for a name collision with export * from ([#1704], thanks [@tomprats])[docs] [imports-first]: deprecation info and link to first docs ([#1835], thanks [@beatrizrezener])
no-unused-modules]: consider exported TypeScript interfaces, types and enums ([#1819], thanks [@nicolashenry])no-cycle]: allow maxDepth option to be "∞" (thanks [@ljharb])order]/TypeScript: properly support import = object expressions ([#1823], thanks [@manuth])no-extraneous-dependencies]/TypeScript: do not error when importing type from dev dependencies ([#1820], thanks [@fernandopasik])default]: avoid crash with export = ([#1822], thanks [@AndrewLeedham])order]/[newline-after-import]: ignore TypeScript's "export import object" ([#1830], thanks [@be5invis])dynamic-import-chunkname]/TypeScript: supports @typescript-eslint/parser ([#1833], thanks [@noelebrun])order]/TypeScript: ignore ordering of object imports ([#1831], thanks [@manuth])namespace]: do not report on shadowed import names ([#518], thanks [@ljharb])export]: avoid warning on export * as non-conflicts ([#1834], thanks [@ljharb])no-extraneous-dependencies]: add tests for importing types ([#1824], thanks [@taye])no-default-export]: Fix docs url ([#1836], thanks [@beatrizrezener])imports-first]: deprecation info and link to first docs ([#1835], thanks [@beatrizrezener])[order]: avoid a crash on TypeScript’s export import syntax ([#1808], thanks [@ljharb])
order]: avoid a crash on TypeScript’s export import syntax ([#1808], thanks [@ljharb])newline-after-import]: consider TypeScript import = syntax' ([#1811], thanks [@ljharb])no-internal-modules]: avoid a crash on a named export declaration ([#1814], thanks [@ljharb])TypeScript: [import/named]: avoid requiring typescript when not using TS ([#1805], thanks [@ljharb])
import/named]: avoid requiring typescript when not using TS ([#1805], thanks [@ljharb])[import/default]: support default export in TSExportAssignment ([#1528], thanks [@joaovieira])
import/default]: support default export in TSExportAssignment ([#1528], thanks [@joaovieira])no-cycle]: add ignoreExternal option ([#1681], thanks [@sveyret])order]: Add support for TypeScript's "import equals"-expressions ([#1785], thanks [@manuth])import/default]: support default export in TSExportAssignment ([#1689], thanks [@Maxim-Mazurok])no-restricted-paths]: add custom message support ([#1802], thanks [@malykhinvi])group-exports]: Flow type export awareness ([#1702], thanks [@ernestostifano])order]: Recognize pathGroup config for first group ([#1719], [#1724], thanks [@forivall], [@xpl])no-unused-modules]: Fix re-export not counting as usage when used in combination with import ([#1722], thanks [@Ephem])no-duplicates]: Handle TS import type ([#1676], thanks [@kmui2])newline-after-import]: recognize decorators ([#1139], thanks [@atos1990])no-unused-modules]: Revert "[flow] [no-unused-modules]: add flow type support" ([#1770], thanks [@Hypnosphi])namespace]/ExportMap: Fix interface declarations for TypeScript ([#1764], thanks [@julien1619])no-unused-modules]: avoid order-dependence ([#1744], thanks [@darkartur])no-internal-modules]: also check export from syntax ([#1691], thanks [@adjerbetian])export]: avoid a crash with export = ([#1801], thanks [@ljharb])no-extraneous-dependencies]: use moduleVisitor ([#1735], thanks [@adamborowski])named][] ([#1726], thanks [@astorije])no-unused-modules] from docs ([#1690], thanks [@arvigeus])order]: fix bad inline config ([#1788], thanks [@nickofthyme])no-unused-rules]: Fix docs for unused exports ([#1776], thanks [@barbogast])[order]: fix isExternalModule detect on windows ([#1651], thanks [@fisker])
order]: fix isExternalModule detect on windows ([#1651], thanks [@fisker])order]: recognize ".." as a "parent" path ([#1658], thanks [@golopot])no-duplicates]: fix fixer on cases with default import ([#1666], thanks [@golopot])no-unused-modules]: Handle export { default } from syntax ([#1631], thanks [@richardxia])first]: Add a way to disable absolute-first explicitly ([#1664], thanks [@TheCrueltySage])no-webpack-loader-syntax]: Updates webpack URLs ([#1751], thanks [@MikeyBeLike])[export]: Handle function overloading in *.d.ts ([#1619], thanks [@IvanGoncharov])
export]: Handle function overloading in *.d.ts ([#1619], thanks [@IvanGoncharov])no-absolute-path]: fix a crash with invalid import syntax ([#1616], thanks [@ljharb])import/external-module-folders setting] now correctly works with directories containing modules symlinked from node_modules ([#1605], thanks [@skozin])extensions]: for invalid code where name does not exist, do not crash ([#1613], thanks [@ljharb])extensions]: Fix scope regex ([#1611], thanks [@yordis])no-duplicates]: allow duplicate imports if one is a namespace and the other not ([#1612], thanks [@sveyret])named]: for importing from a module which re-exports named exports from a node_modules module ([#1569], [#1447], thanks [@redbugz], [@kentcdodds])order]: Fix alphabetize for mixed requires and imports ([#1626], thanks [@wschurman])import/external-module-folders setting] behavior is more strict now: it will only match complete path segments ([#1605], thanks [@skozin])order]: Add TS import type tests ([#1736], thanks [@kmui2])[order]: added caseInsensitive as an additional option to alphabetize ([#1586], thanks [@dbrewer5])
order]: added caseInsensitive as an additional option to alphabetize ([#1586], thanks [@dbrewer5])no-restricted-paths]: New except option per zone, allowing exceptions to be defined for a restricted zone ([#1238], thanks [@rsolomon])order]: add option pathGroupsExcludedImportTypes to allow ordering of external import types ([#1565], thanks [@Mairu])no-unused-modules]: fix usage of [import/extensions setting] ([#1560], thanks [@stekycz])extensions]: ignore non-main modules ([#1563], thanks [@saschanaz])no-extraneous-dependencies]: ensure node.source is truthy ([#1589], thanks [@ljharb])extensions]: Ignore query strings when checking for extensions ([#1572], thanks [@pcorpet])extensions]: improve ignorePackages docs ([#1248], thanks [@ivo-stefchev])[no-extraneous-dependencies]: ensure node.source exists
no-extraneous-dependencies]: ensure node.source exists[internal-regex setting]: regex pattern for marking packages "internal" ([#1491], thanks [@Librazy])
internal-regex setting]: regex pattern for marking packages "internal" ([#1491], thanks [@Librazy])group-exports]: make aggregate module exports valid ([#1472], thanks [@atikenny])no-namespace]: Make rule fixable ([#1401], thanks [@TrevorBurnham])parseForESLint from custom parser ([#1435], thanks [@JounQin])no-extraneous-dependencies]: Implement support for bundledDependencies ([#1436], thanks [@schmidsi]))no-unused-modules]: add flow type support ([#1542], thanks [@rfermann])order]: Adds support for pathGroups to allow ordering by defined patterns ([#795], [#1386], thanks [@Mairu])no-duplicates]: Add considerQueryString option : allow duplicate imports with different query strings ([#1107], thanks [@pcorpet]).order]: Add support for alphabetical sorting of import paths within import groups ([#1360], [#1105], [#629], thanks [@duncanbeevers], [@stropho], [@luczsoma], [@randallreedjr])no-commonjs]: add allowConditionalRequire option ([#1439], thanks [@Pessimistress])default]: make error message less confusing ([#1470], thanks [@golopot])ExportMap.for by only loading paths when necessary. ([#1519], thanks [@brendo])order]: fix autofix to not move imports across fn calls ([#1253], thanks [@tihonove])prefer-default-export]: fix false positive with type export ([#1506], thanks [@golopot])extensions]: Fix ignorePackages to produce errors ([#1521], thanks [@saschanaz])no-unused-modules]: fix crash due to export * ([#1496], thanks [@Taranys])no-cycle]: should not warn for Flow imports ([#1494], thanks [@maxmalov])order]: fix @someModule considered as unknown instead of internal ([#1493], thanks [@aamulumi])no-extraneous-dependencies]: Check export from ([#1049], thanks [@marcusdarmstrong])no-useless-path-segments]: add docs for option commonjs ([#1507], thanks [@golopot])no-unused-modules]/eslint-module-utils: Avoid superfluous calls and code ([#1551], thanks [@brettz9])Skip warning on type interfaces ([#1425], thanks [@lencioni])
Improve parse perf when using @typescript-eslint/parser ([#1409], thanks [@bradzacher])
@typescript-eslint/parser ([#1409], thanks [@bradzacher])prefer-default-export]: don't warn on TypeAlias & TSTypeAliasDeclaration ([#1377], thanks [@sharmilajesupaul])no-unused-modules]: Exclude package "main"/"bin"/"browser" entry points ([#1404], thanks [@rfermann])export]: false positive for TypeScript overloads ([#1412], thanks [@golopot])no-extraneous-dependencies], importType: remove lodash ([#1419], thanks [@ljharb])Support eslint v6 ([#1393], thanks [@sheepsteak])
order]: Adds support for correctly sorting unknown types into a single group ([#1375], thanks [@swernerx])order]: add fixer for destructuring commonjs import ([#1372], thanks [@golopot])no-unused-modules]: handle ClassDeclaration ([#1371], thanks [@golopot])no-cycle]: split code examples so file separation is obvious ([#1370], thanks [@alex-page])no-named-as-default-member]: update broken link ([#1389], thanks [@fooloomanzoo])[no-common-js]: Also throw an error when assigning ([#1354], thanks [@charlessuh])
no-common-js]: Also throw an error when assigning ([#1354], thanks [@charlessuh])no-unused-modules]: don't crash when lint file outside src-folder ([#1347], thanks [@rfermann])no-unused-modules]: make import { name as otherName } work ([#1340], [#1342], thanks [@rfermann])no-unused-modules]: make appveyor tests passing ([#1333], thanks [@rfermann])named]: ignore Flow typeof imports and type exports ([#1345], thanks [@loganfsmyth])no-unused-modules] in README ([#1358], thanks [@golopot])no-unused-modules]: Indicates usage, plugin defaults to no-op, and add description to main README.md ([#1352], thanks [@johndevedu])env option for eslint-import-resolver-webpack ([#1363], thanks [@kgregory])[no-unused-modules]: avoid crash when using ignoreExports-option ([#1331], [#1323], thanks [@rfermann])
no-unused-modules]: avoid crash when using ignoreExports-option ([#1331], [#1323], thanks [@rfermann])no-unused-modules]: make sure that rule with no options will not fail ([#1330], [#1334], thanks [@kiwka])require v2.4 of eslint-module-utils ([#1322], thanks [@mlenser])
eslint-module-utils ([#1322], thanks [@mlenser])[no-useless-path-segments]: Add noUselessIndex option ([#1290], thanks [@timkraut])
no-useless-path-segments]: Add noUselessIndex option ([#1290], thanks [@timkraut])no-duplicates]: Add autofix ([#1312], thanks [@lydell])no-unused-modules] rule ([#1142], thanks [@rfermann])order]: Fix interpreting some external modules being interpreted as internal modules ([#793], [#794] thanks [@ephys])namespace]: add check for null ExportMap ([#1235], [#1144], thanks [@ljqx])no-cycle], [no-relative-parent-imports], [no-unresolved], [no-useless-path-segments]) ([#1218], [#1166], [#1035], thanks [@vikr01])export]: false positives for TypeScript type + value export ([#1319], thanks [@bradzacher])export]: Support TypeScript namespaces ([#1320], [#1300], thanks [@bradzacher])no-commonjs]: add tests that show corner cases ([#1308], thanks [@TakeScoop])typescript config ([#1257], thanks [@kirill-konshin])
typescript config ([#1257], thanks [@kirill-konshin])SourceCode objects for all parsed dependencies, resolved. (issue [#1266], thanks [@asapach] and [@sergei-startsev] for digging in)new rule: [no-named-export] ([#1157], thanks [@fsmaia])
no-named-export] ([#1157], thanks [@fsmaia])no-extraneous-dependencies]: packageDir option with array value was clobbering package deps instead of merging them ([#1175]/[#1176], thanks [@aravindet] & [@pzhine])dynamic-import-chunkname]: Add proper webpack comment parsing ([#1163], thanks [@st-sloth])named]: fix destructuring assignment ([#1232], thanks [@ljqx])[no-useless-path-segments]: add commonJS (CJS) support ([#1128], thanks [@1pete])
no-useless-path-segments]: add commonJS (CJS) support ([#1128], thanks [@1pete])namespace]: add JSX check ([#1151], thanks [@jf248])no-cycle]: ignore Flow imports ([#1126], thanks [@gajus])no-relative-parent-imports]: resolve paths ([#1135], thanks [@chrislloyd])order]: fix autofixer when using typescript-eslint-parser ([#1137], thanks [@justinanastos])Add ESLint 5 support ([#1122], thanks [@ai] and [@ljharb])
no-relative-parent-imports] rule: disallow relative imports from parent directories ([#1093], thanks [@chrislloyd])namespace rule: ensure it works in eslint 5/ecmaVersion 2018 (thanks [@ljharb])Ignore type imports for [named] rule ([#931], thanks [@mattijsbliek])
named] rule ([#931], thanks [@mattijsbliek])no-useless-path-segments] rule ([#1068], thanks [@manovotny])packageDir option for [no-extraneous-dependencies] can be array-valued ([#1085], thanks [@hulkish])Fixer for [first] ([#1046], thanks [@fengkfengk])
first] ([#1046], thanks [@fengkfengk])allow-require option for [no-commonjs] rule ([#880], thanks [@futpib])Autofixer for [order] rule ([#908], thanks [@tihonove])
order] rule ([#908], thanks [@tihonove])no-cycle] rule: reports import cycles.Add [group-exports] rule: style-guide rule to report use of multiple named exports ([#721], thanks [@robertrossmann])
group-exports] rule: style-guide rule to report use of multiple named exports ([#721], thanks [@robertrossmann])no-self-import] rule: forbids a module from importing itself. ([#727], [#449], [#447], thanks [@giodamelio]).no-default-export] rule ([#889], thanks [@isiahmeadows])no-useless-path-segments] rule ([#912], thanks [@graingert] and [@danny-andrews])[exports-last] rule ([#620] + [#632], thanks [@k15a])
exports-last] rule ([#620] + [#632], thanks [@k15a])[no-absolute-path] picks up speed boost, optional AMD support ([#843], thanks [@jseminck])
no-absolute-path] picks up speed boost, optional AMD support ([#843], thanks [@jseminck])update bundled node resolver dependency to latest version
update tests / peerDeps for ESLint 4.0 compatibility ([#871], thanks [@mastilver])
memo-parser] updated to require filePath on parser options as it melts
down if it's not there, now that this plugin always provides it. (see [#863])Re-releasing v[2.4.0] after discovering that the memory leak is isolated to the [memo-parser], which is more or less experimental anyway.
Re-releasing v[2.4.0] after discovering that the memory leak is isolated to the [memo-parser],
which is more or less experimental anyway.
[no-anonymous-default-export] rule: report anonymous default exports ([#712], thanks [@duncanbeevers]).
no-anonymous-default-export] rule: report anonymous default exports ([#712], thanks [@duncanbeevers]).order]'s newlines-between option to allow newlines inside import groups ([#627], [#628], thanks [@giodamelio])count option to the [newline-after-import] rule to allow configuration of number of newlines expected ([#742], thanks [@ntdb])no-extraneous-dependencies]: use read-pkg-up to simplify finding + loading package.json ([#680], thanks [@wtgtybhertgeghgtwtg])no-extraneous-dependencies] ([#685], thanks [@ramasilveyra])no-mutable-exports]. ([#660], thanks [@NullDivision])Corrected a few gaffs in the auto-ignore logic to fix major performance issues with projects that did not explicitly ignore node_modules. ([#654])
node_modules. ([#654])import/ignore setting] was only being respected if the ignored module didn't start with
an import or export JS statementprefer-default-export]: fixed crash on export extensions ([#653], thanks [@adascal])Add [no-named-default] rule: style-guide rule to report use of unnecessarily named default imports ([#596], thanks [@ntdb])
no-named-default] rule: style-guide rule to report use of unnecessarily named default imports ([#596], thanks [@ntdb])no-extraneous-dependencies]: check globs against CWD + absolute path ([#602] + [#630], thanks [@ljharb])prefer-default-export] handles flow export type ([#484] + [#639], thanks [@jakubsta])prefer-default-export] handles re-exported default exports ([#609], thanks [@danielkcz])newline-after-import] with decorators ([#592], thanks [@lukekarrys])newline-after-import] when next line is a decoratororder] rule ([#601], thanks [@mpalmer685])Your coding agent can read these notes before it upgrades. Set up the MCP server →