All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning. This change log adheres to standards from Keep a CHANGELOG.
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)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)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)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 (#1820, 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)order]
: Fix group ranks order when alphabetizing (#2674, thanks @Pearce-Ropion)semver
should be a prod dep (#2668)no-empty-named-blocks
]: rewrite rule to only check import declarations (#2666)no-duplicates
]: do not unconditionally require typescript
(#2665)array.prototype.flatmap
should be a prod dep (#2664, thanks @cristobal)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 @azyzz228eslint-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)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)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-utils
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)eslint-module-utils
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)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)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)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)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)safe-publish-latest
; use prepublishOnly
script for npm 7+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)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)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)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)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)newline-after-import
]: consider TypeScript import =
syntax' (#1811, thanks @ljharb)no-internal-modules
]: avoid a crash on a named export declaration (#1814, thanks @ljharb)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
]: 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)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)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
existsinternal-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)@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)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-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-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
]: make sure that rule with no options will not fail (#1330, #1334, thanks @kiwka)eslint-module-utils
(#1322)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)SourceCode
objects for all parsed dependencies, resolved. (issue #1266, thanks @asapach and @sergei-startsev for digging in)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)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)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)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)first
] (#1046, thanks @fengkfengk)allow-require
option for [no-commonjs
] rule (#880, thanks @futpib)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)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 v2.4.0 after discovering that the memory leak is isolated to the [memo-parser
],
which is more or less experimental anyway.
Yanked due to critical issue in eslint-module-utils with cache key resulting from #839.
filePath
into parserOptions
passed to parser
(#839, thanks @sompylasar)allow
option to [no-unassigned-import
] to allow for files that match the globs (#671, #737, thanks @kevin940726).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)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)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)newline-after-import
] with decorators (#592)newline-after-import
] when next line is a decoratororder
] rule (#601)unambiguous
] rule: report modules that are not unambiguously ES modules.recommended
shared config. Roughly errors
and warnings
mixed together,
with some parserOptions
in the mix. (#402)react
shared config: added jsx: true
to parserOptions.ecmaFeatures
.no-webpack-loader-syntax
] rule: forbid custom Webpack loader syntax in imports. (#586, thanks @fson!)newlines-between: "ignore"
to [order
] (#519)no-unassigned-import
] rule (#529)import/extensions
setting] defaults to ['.js']
. (#306)import/ignore
setting] defaults to nothing, and ambiguous modules are ignored natively. This means importing from CommonJS modules will no longer be reported by [default
], [named
], or [namespace
], regardless of import/ignore
. (#270)newline-after-import
]: Removed need for an empty line after an inline require
call (#570)order
]: Default value for newlines-between
option is now ignore
(#519)imports-first
is renamed to [first
]. imports-first
alias will continue to
exist, but may be removed in a future major release.no-unresolved
].
Other rules will ignore case-mismatches on paths on case-insensitive filesystems. (#311)no-dynamic-require
] rule: forbid require()
calls with expressions. (#567, #568)no-internal-modules
] rule: restrict deep package imports to specific folders. (#485, thanks @spalger!)extensions
]: allow override of a chosen default with options object (#555, thanks @ljharb!)no-named-as-default
] no longer false-positives on export default from '...'
(#566, thanks @preco21)default
]: allow re-export of values from ignored files as default (#545, thanks @skyrpex)allow
option to [no-nodejs-modules
] to allow exceptions (#452, #509).no-absolute-path
] rule (#530, #538)max-dependencies
] for specifying the maximum number of dependencies (both import
and require
) a module can have. (see #489, thanks @tizmagik)no-extraneous-dependencies
], after much bikeshedding. Thanks, @knpwrs! (#527)no-named-as-default-member
] Allow default import to have a property named "default" (#507, #508, thanks @jquense for both!)import/parsers
setting]: parse some dependencies (i.e. TypeScript!) with a different parser than the ESLint-configured parser. (#503)namespace
] exception for get property from namespace
import, which are re-export from commonjs module (#499 fixes #416, thanks @wKich)allowComputed
option for [namespace
] rule. If set to true
, won't report
computed member references to namespaces. (see #456)import/extensions
setting] is respected in spite of the appearance of imports
in an imported file. (fixes #478, thanks @rhys-vdw)import/external-module-folders
setting]: a possibility to configure folders for "external" modules (#444, thanks @zloirock)newline-after-import
] exception for switch
branches with require
s iff parsed as sourceType:'module'
.
(still #441, thanks again @ljharb)peerDependencies
option to [no-extraneous-dependencies
] to allow/forbid peer dependencies (#423, #428, thanks @jfmengels!).newline-after-import
] exception for multiple require
s in an arrow
function expression (e.g. () => require('a') || require('b')
). (#441, thanks @ljharb)Symbol
dependencies (i.e. for-of
loops) due to Node 0.10 polyfill
issue (see #415). Should not make any discernible semantic difference.npm prepublish
of 1.10.1.
Several rm -rf node_modules && npm i
and gulp clean && npm prepublish
s later, it is rebuilt and republished as 1.10.2. Thanks @rhettlivingston for noticing and reporting!2.x - 3.x
)no-restricted-paths
]. (#155/#371, thanks @lo1tuma)import/core-modules
setting]: allow configuration of additional module names,
to be treated as builtin modules (a la path
, etc. in Node). (#275 + #365, thanks @sindresorhus for driving)newline-after-import
related to the use of switch cases. (fixes #386, thanks @ljharb for reporting) (#395)no-deprecated
]. (#321, thanks @josh)prefer-default-export
] handles export function
and export const
in same file (#359, thanks @scottnonnenberg)export * from 'foo'
now properly ignores a default
export from foo
, if any. (#328/#332, thanks @jkimbo)
This impacts all static analysis of imported names. ([default
], [named
], [namespace
], [export
])order
]'s newline-between
option handle multiline import statements (#313, thanks @singles)order
]'s newline-between
option handle not assigned import statements (#313, thanks @singles)order
]'s newline-between
option ignore require
statements inside object literals (#313, thanks @singles)prefer-default-export
] properly handles deep destructuring, export * from ...
, and files with no exports. (#342+#343, thanks @scottnonnenberg)no-mutable-exports
]. (#317, fixed by #322. thanks @borisyankov + @jfmengels)no-extraneous-dependencies
] handle scoped packages (#316, thanks @jfmengels)newline-after-import
], new rule. (#245, thanks @singles)optionalDependencies
option to [no-extraneous-dependencies
] to allow/forbid optional dependencies (#266, thanks @jfmengels).newlines-between
option to [order
] rule (#298, thanks @singles)no-mutable-exports
] rule (#290, thanks @josh)import/extensions
setting]: a list of file extensions to parse as modules
and search for export
s. If unspecified, all extensions are considered valid (for now).
In v2, this will likely default to ['.js', MODULE_EXT]
. (#297, to fix #267)extensions
]: fallback to source path for extension enforcement if imported
module is not resolved. Also, never report for builtins (i.e. path
). (#296)no-named-as-default-member
]: don't crash on rest props. (#281, thanks @SimenB)null
to path
functions.
Thanks to @strawbrary for bringing this up (#272) and adding OSX support to the Travis
config (#288).no-named-as-default-member
] to warnings
canned configno-extraneous-dependencies
] rule (#241, thanks @jfmengels)extensions
] rule (#250, thanks @lo1tuma)no-nodejs-modules
] rule (#261, thanks @jfmengels)order
] rule (#247, thanks @jfmengels)resolve.fallback
config option in the webpack resolver (#254)imports-first
] now allows directives (i.e. 'use strict'
) strictly before
any imports (#256, thanks @lemonmade)named
] now properly ignores the source module if a name is re-exported from
an ignored file (i.e. node_modules
). Also improved the reported error. (thanks to @jimbolla for reporting)no-named-as-default-member
] had a crash on destructuring in loops (thanks for heads up from @lemonmade)no-namespace
] rule (#239, thanks @singles)no-named-as-default-member
] rule (#243, thanks @dmnd)es6-*
ponyfills. Using native Map/Set/Symbol.package.json/files
instead of .npmignore
for package file inclusion (#228, thanks @mathieudutour)es6-*
ponyfills instead of babel-runtime
Major perf improvements. Between parsing only once and ignoring gigantic, non-module node_modules
,
there is very little added time.
My test project takes 17s to lint completely, down from 55s, when using the
memoizing parser, and takes only 27s with naked babel-eslint
(thus, reparsing local modules).
import/ignore
setting] if
something that looks like an export
is detected in the module content.Thanks @lencioni for identifying a huge amount of rework in resolve and kicking off a bunch of memoization.
I'm seeing 62% improvement over my normal test codebase when executing only
[no-unresolved
] in isolation, and ~35% total reduction in lint time.
import/cache
setting]ignore
option to [no-unresolved
] for those pesky files that no resolver can find. (still prefer enhancing the Webpack and Node resolvers to using it, though). See #89 for details.namespace
]/[no-deprecated
]) (#211)namespace
] no longer flags modules with only a default export as having no names. (ns.default is valid ES6)stage-0
shared configno-deprecated
]no-deprecated
]: WIP rule to let you know at lint time if you're using deprecated functions, constants, classes, or modules.import/parser
or import/parse-options
. Instead, ESLint provides the configured parser + options to the rules, and they use that to parse dependencies.babylon
as default import parser (see Breaking)no-commonjs
] ruleno-amd
] ruleno-require
rule. [no-commonjs
] is more complete.Unpublished from npm and re-released as 0.13.0. See #170.
import/ignore
setting] if exports are actually found in the parsed module. Does this to support use of jsnext:main
in node_modules
without the pain of managing an allow list or a nuanced deny list.See GitHub release notes for info on changes for earlier releases.