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.
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)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)eslint-module-utilsextensions: 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)importType: combine redundant isScoped and isScopedModule (thanks @ljharb)eslint-module-utilseslint 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 settingno-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)@/... (#2140, thanks @wenfangdu)pathGroupsExcludedImportTypes: ['type'] (#2158, thanks @atav32)pathGroupsExcludedImportTypes option (#2156, thanks @liby)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-packagesno-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-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)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)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: 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 settingextensions: 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)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)@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)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-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-named-exportno-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)firstallow-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)exports-last rule (#620 + #632, thanks @k15a)no-absolute-path picks up speed boost, optional AMD support (#843, thanks @jseminck)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-dependenciesno-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 orderno-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-internal-modules: support @-scoped packages (#577+#578, thanks @spalger)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)no-nodejs-modules error message to include the module's name (#453, #461)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 requires 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 requires 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 prepublishs 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)export and no-deprecated rules. (#348, #370)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)prefer-default-export, new rule. (#308, thanks @gavriguy)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 exports. 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-runtimeMajor 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 settingignore 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-deprecatedno-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.