UNPKG

57.7 kBMarkdownView Raw
1# Change Log
2
3All notable changes to this project will be documented in this file.
4This project adheres to [Semantic Versioning](http://semver.org/).
5This change log adheres to standards from [Keep a CHANGELOG](http://keepachangelog.com).
6
7## [Unreleased]
8
9## [2.20.0] - 2020-01-10
10### Added
11- [`order`]: added `caseInsensitive` as an additional option to `alphabetize` ([#1586], thanks [@dbrewer5])
12- [`no-restricted-paths`]: New `except` option per `zone`, allowing exceptions to be defined for a restricted zone ([#1238], thanks [@rsolomon])
13
14### Fixed
15- [`no-unused-modules`]: fix usage of `import/extensions` settings ([#1560], thanks [@stekycz])
16- [`import/extensions`]: ignore non-main modules ([#1563], thanks [@saschanaz])
17- TypeScript config: lookup for external modules in @types folder ([#1526], thanks [@joaovieira])
18- [`no-extraneous-dependencies`]: ensure `node.source` is truthy ([#1589], thanks [@ljharb])
19- [`extensions`]: Ignore query strings when checking for extensions ([#1572], thanks [@pcorpet])
20
21### Docs
22- [`extensions`]: improve `ignorePackages` docs ([#1248], thanks [@ivo-stefchev])
23
24### Added
25- [`order`]: add option pathGroupsExcludedImportTypes to allow ordering of external import types ([#1565], thanks [@Mairu])
26
27## [2.19.1] - 2019-12-08
28### Fixed
29- [`no-extraneous-dependencies`]: ensure `node.source` exists
30
31## [2.19.0] - 2019-12-08
32### Added
33- [`internal-regex` setting]: regex pattern for marking packages "internal" ([#1491], thanks [@Librazy])
34- [`group-exports`]: make aggregate module exports valid ([#1472], thanks [@atikenny])
35- [`no-namespace`]: Make rule fixable ([#1401], thanks [@TrevorBurnham])
36- support `parseForESLint` from custom parser ([#1435], thanks [@JounQin])
37- [`no-extraneous-dependencies`]: Implement support for [bundledDependencies](https://npm.github.io/using-pkgs-docs/package-json/types/bundleddependencies.html) ([#1436], thanks [@schmidsi]))
38- [`no-unused-modules`]: add flow type support ([#1542], thanks [@rfermann])
39- [`order`]: Adds support for pathGroups to allow ordering by defined patterns ([#795], [#1386], thanks [@Mairu])
40- [`no-duplicates`]: Add `considerQueryString` option : allow duplicate imports with different query strings ([#1107], thanks [@pcorpet]).
41- [`order`]: Add support for alphabetical sorting of import paths within import groups ([#1360], [#1105], [#629], thanks [@duncanbeevers], [@stropho], [@luczsoma], [@randallreedjr])
42- [`no-commonjs`]: add `allowConditionalRequire` option ([#1439], thanks [@Pessimistress])
43
44### Fixed
45- [`default`]: make error message less confusing ([#1470], thanks [@golopot])
46- Improve performance of `ExportMap.for` by only loading paths when necessary. ([#1519], thanks [@brendo])
47- Support export of a merged TypeScript namespace declaration ([#1495], thanks [@benmunro])
48- [`order`]: fix autofix to not move imports across fn calls ([#1253], thanks [@tihonove])
49- [`prefer-default-export`]: fix false positive with type export ([#1506], thanks [@golopot])
50- [`extensions`]: Fix `ignorePackages` to produce errors ([#1521], thanks [@saschanaz])
51- [`no-unused-modules`]: fix crash due to `export *` ([#1496], thanks [@Taranys])
52- [`no-cycle`]: should not warn for Flow imports ([#1494], thanks [@maxmalov])
53- [`order`]: fix `@someModule` considered as `unknown` instead of `internal` ([#1493], thanks [@aamulumi])
54- [`no-extraneous-dependencies`]: Check `export from` ([#1049], thanks [@marcusdarmstrong])
55
56### Docs
57- [`no-useless-path-segments`]: add docs for option `commonjs` ([#1507], thanks [@golopot])
58
59### Changed
60- [`no-unused-modules`]/`eslint-module-utils`: Avoid superfluous calls and code ([#1551], thanks [@brettz9])
61
62## [2.18.2] - 2019-07-19
63### Fixed
64- Skip warning on type interfaces ([#1425], thanks [@lencioni])
65
66## [2.18.1] - 2019-07-18
67### Fixed
68- Improve parse perf when using `@typescript-eslint/parser` ([#1409], thanks [@bradzacher])
69- [`prefer-default-export`]: don't warn on TypeAlias & TSTypeAliasDeclaration ([#1377], thanks [@sharmilajesupaul])
70- [`no-unused-modules`]: Exclude package "main"/"bin"/"browser" entry points ([#1404], thanks [@rfermann])
71- [`export`]: false positive for TypeScript overloads ([#1412], thanks [@golopot])
72
73### Refactors
74- [`no-extraneous-dependencies`], `importType`: remove lodash ([#1419], thanks [@ljharb])
75
76## [2.18.0] - 2019-06-24
77### Added
78- Support eslint v6 ([#1393], thanks [@sheepsteak])
79- [`order`]: Adds support for correctly sorting unknown types into a single group ([#1375], thanks [@swernerx])
80- [`order`]: add fixer for destructuring commonjs import ([#1372], thanks [@golopot])
81- TypeScript config: add TS def extensions + defer to TS over JS ([#1366], thanks [@benmosher])
82
83### Fixed
84- [`no-unused-modules`]: handle ClassDeclaration ([#1371], thanks [@golopot])
85
86### Docs
87- [`no-cycle`]: split code examples so file separation is obvious ([#1370], thanks [@alex-page])
88- [`no-named-as-default-member`]: update broken link ([#1389], thanks [@fooloomanzoo])
89
90## [2.17.3] - 2019-05-23
91### Fixed
92- [`no-common-js`]: Also throw an error when assigning ([#1354], thanks [@charlessuh])
93- [`no-unused-modules`]: don't crash when lint file outside src-folder ([#1347], thanks [@rfermann])
94- [`no-unused-modules`]: make `import { name as otherName }` work ([#1340], [#1342], thanks [@rfermann])
95- [`no-unused-modules`]: make appveyor tests passing ([#1333], thanks [@rfermann])
96- [`named`]: ignore Flow `typeof` imports and `type` exports ([#1345], thanks [@loganfsmyth])
97- [refactor] fix eslint 6 compat by fixing imports (thank [@ljharb])
98- Improve support for TypeScript declare structures ([#1356], thanks [@christophercurrie])
99
100### Docs
101- add missing `no-unused-modules` in README ([#1358], thanks [@golopot])
102- [`no-unused-modules`]: Indicates usage, plugin defaults to no-op, and add description to main README.md ([#1352], thanks [@johndevedu])
103- Document `env` option for `eslint-import-resolver-webpack` ([#1363], thanks [@kgregory])
104
105## [2.17.2] - 2019-04-16
106### Fixed
107- [`no-unused-modules`]: avoid crash when using `ignoreExports`-option ([#1331], [#1323], thanks [@rfermann])
108- [`no-unused-modules`]: make sure that rule with no options will not fail ([#1330], [#1334], thanks [@kiwka])
109
110## [2.17.1] - 2019-04-13
111### Fixed
112- require v2.4 of `eslint-module-utils` ([#1322])
113
114## [2.17.0] - 2019-04-13
115### Added
116- [`no-useless-path-segments`]: Add `noUselessIndex` option ([#1290], thanks [@timkraut])
117- [`no-duplicates`]: Add autofix ([#1312], thanks [@lydell])
118- Add [`no-unused-modules`] rule ([#1142], thanks [@rfermann])
119- support export type named exports from TypeScript ([#1304], thanks [@bradennapier] and [@schmod])
120
121### Fixed
122- [`order`]: Fix interpreting some external modules being interpreted as internal modules ([#793], [#794] thanks [@ephys])
123- allow aliases that start with @ to be "internal" ([#1293], [#1294], thanks [@jeffshaver])
124- aliased internal modules that look like core modules ([#1297], thanks [@echenley])
125- [`namespace`]: add check for null ExportMap ([#1235], [#1144], thanks [@ljqx])
126- [ExportMap] fix condition for checking if block comment ([#1234], [#1233], thanks [@ljqx])
127- Fix overwriting of dynamic import() CallExpression ([`no-cycle`], [`no-relative-parent-import`], [`no-unresolved`], [`no-useless-path-segments`]) ([#1218], [#1166], [#1035], thanks [@vikr01])
128- [`export`]: false positives for TypeScript type + value export ([#1319], thanks [@bradzacher])
129- [`export`]: Support TypeScript namespaces ([#1320], [#1300], thanks [@bradzacher])
130
131### Docs
132- Update readme for TypeScript ([#1256], [#1277], thanks [@kirill-konshin])
133- make rule names consistent ([#1112], thanks [@feychenie])
134
135### Tests
136- fix broken tests on master ([#1295], thanks [@jeffshaver] and [@ljharb])
137- [`no-commonjs`]: add tests that show corner cases ([#1308], thanks [@TakeScoop])
138
139## [2.16.0] - 2019-01-29
140### Added
141- `typescript` config ([#1257], thanks [@kirill-konshin])
142
143### Fixed
144- Memory leak of `SourceCode` objects for all parsed dependencies, resolved. (issue [#1266], thanks [@asapach] and [@sergei-startsev] for digging in)
145
146## [2.15.0] - 2019-01-22
147### Added
148- new rule: [`no-named-export`] ([#1157], thanks [@fsmaia])
149
150### Fixed
151- [`no-extraneous-dependencies`]: `packageDir` option with array value was clobbering package deps instead of merging them ([#1175]/[#1176], thanks [@aravindet] & [@pzhine])
152- [`dynamic-import-chunkname`]: Add proper webpack comment parsing ([#1163], thanks [@st-sloth])
153- [`named`]: fix destructuring assignment ([#1232], thanks [@ljqx])
154
155## [2.14.0] - 2018-08-13
156### Added
157- [`no-useless-path-segments`]: add commonJS (CJS) support ([#1128], thanks [@1pete])
158- [`namespace`]: add JSX check ([#1151], thanks [@jf248])
159
160### Fixed
161- [`no-cycle`]: ignore Flow imports ([#1126], thanks [@gajus])
162- fix Flow type imports ([#1106], thanks [@syymza])
163- [`no-relative-parent-imports`]: resolve paths ([#1135], thanks [@chrislloyd])
164- [`order`]: fix autofixer when using typescript-eslint-parser ([#1137], thanks [@justinanastos])
165- repeat fix from [#797] for [#717], in another place (thanks [@ljharb])
166
167### Refactors
168- add explicit support for RestElement alongside ExperimentalRestProperty (thanks [@ljharb])
169
170## [2.13.0] - 2018-06-24
171### Added
172- Add ESLint 5 support ([#1122], thanks [@ai] and [@ljharb])
173- Add [`no-relative-parent-imports`] rule: disallow relative imports from parent directories ([#1093], thanks [@chrislloyd])
174
175### Fixed
176- `namespace` rule: ensure it works in eslint 5/ecmaVersion 2018 (thanks [@ljharb])
177
178## [2.12.0] - 2018-05-17
179### Added
180- Ignore type imports for [`named`] rule ([#931], thanks [@mattijsbliek])
181- Add documentation for [`no-useless-path-segments`] rule ([#1068], thanks [@manovotny])
182- `packageDir` option for [`no-extraneous-dependencies`] can be array-valued ([#1085], thanks [@hulkish])
183
184## [2.11.0] - 2018-04-09
185### Added
186- Fixer for [`first`] ([#1046], thanks [@fengkfengk])
187- `allow-require` option for [`no-commonjs`] rule ([#880], thanks [@futpib])
188
189### Fixed
190- memory/CPU regression where ASTs were held in memory ([#1058], thanks [@klimashkin]/[@lukeapage])
191
192## [2.10.0] - 2018-03-29
193### Added
194- Autofixer for [`order`] rule ([#908], thanks [@tihonove])
195- Add [`no-cycle`] rule: reports import cycles.
196
197## [2.9.0] - 2018-02-21
198### Added
199- Add [`group-exports`] rule: style-guide rule to report use of multiple named exports ([#721], thanks [@robertrossmann])
200- Add [`no-self-import`] rule: forbids a module from importing itself. ([#727], [#449], [#447], thanks [@giodamelio]).
201- Add [`no-default-export`] rule ([#889], thanks [@isiahmeadows])
202- Add [`no-useless-path-segments`] rule ([#912], thanks [@graingert] and [@danny-andrews])
203- ... and more! check the commits for v[2.9.0]
204
205## [2.8.0] - 2017-10-18
206### Added
207- [`exports-last`] rule ([#620] + [#632], thanks [@k15a])
208
209### Changed
210- Case-sensitivity checking ignores working directory and ancestors. ([#720] + [#858], thanks [@laysent])
211
212### Fixed
213- support scoped modules containing hyphens ([#744], thanks [@rosswarren])
214- core-modules now resolves files inside declared modules ([#886] / [#891], thanks [@mplewis])
215- TypeError for missing AST fields from TypeScript ([#842] / [#944], thanks [@alexgorbatchev])
216
217## [2.7.0] - 2017-07-06
218### Changed
219- [`no-absolute-path`] picks up speed boost, optional AMD support ([#843], thanks [@jseminck])
220
221## [2.6.1] - 2017-06-29
222### Fixed
223- update bundled node resolver dependency to latest version
224
225## [2.6.0] - 2017-06-23
226### Changed
227- update tests / peerDeps for ESLint 4.0 compatibility ([#871], thanks [@mastilver])
228- [`memo-parser`] updated to require `filePath` on parser options as it melts
229 down if it's not there, now that this plugin always provides it. (see [#863])
230
231## [2.5.0] - 2017-06-22
232
233Re-releasing v[2.4.0] after discovering that the memory leak is isolated to the [`memo-parser`],
234which is more or less experimental anyway.
235
236### Added
237- Autofixer for newline-after-import. ([#686] + [#696], thanks [@eelyafi])
238
239## [2.4.0] - 2017-06-02 [YANKED]
240
241Yanked due to critical issue in eslint-module-utils with cache key resulting from [#839].
242
243### Added
244- Add `filePath` into `parserOptions` passed to `parser` ([#839], thanks [@sompylasar])
245- Add `allow` option to [`no-unassigned-import`] to allow for files that match the globs ([#671], [#737], thanks [@kevin940726]).
246
247## [2.3.0] - 2017-05-18
248### Added
249- [`no-anonymous-default-export`] rule: report anonymous default exports ([#712], thanks [@duncanbeevers]).
250- Add new value to [`order`]'s `newlines-between` option to allow newlines inside import groups ([#627], [#628], thanks [@giodamelio])
251- Add `count` option to the [`newline-after-import`] rule to allow configuration of number of newlines expected ([#742], thanks [@ntdb])
252
253### Changed
254- [`no-extraneous-dependencies`]: use `read-pkg-up` to simplify finding + loading `package.json` ([#680], thanks [@wtgtybhertgeghgtwtg])
255- Add support to specify the package.json [`no-extraneous-dependencies`] ([#685], thanks [@ramasilveyra])
256
257### Fixed
258- attempt to fix crash in [`no-mutable-exports`]. ([#660])
259- "default is a reserved keyword" in no-maned-default tests by locking down babylon to 6.15.0 (#756, thanks @gmathieu)
260- support scoped modules containing non word characters
261
262
263## [2.2.0] - 2016-11-07
264### Fixed
265- Corrected a few gaffs in the auto-ignore logic to fix major performance issues
266 with projects that did not explicitly ignore `node_modules`. ([#654])
267- [`import/ignore` setting] was only being respected if the ignored module didn't start with
268 an `import` or `export` JS statement
269- [`prefer-default-export`]: fixed crash on export extensions ([#653])
270
271## [2.1.0] - 2016-11-02
272### Added
273- Add [`no-named-default`] rule: style-guide rule to report use of unnecessarily named default imports ([#596], thanks [@ntdb])
274- [`no-extraneous-dependencies`]: check globs against CWD + absolute path ([#602] + [#630], thanks [@ljharb])
275
276### Fixed
277- [`prefer-default-export`] handles flow `export type` ([#484] + [#639], thanks [@jakubsta])
278- [`prefer-default-export`] handles re-exported default exports ([#609])
279- Fix crash when using [`newline-after-import`] with decorators ([#592])
280- Properly report [`newline-after-import`] when next line is a decorator
281- Fixed documentation for the default values for the [`order`] rule ([#601])
282
283## [2.0.1] - 2016-10-06
284### Fixed
285- Fixed code that relied on removed dependencies. ([#604])
286
287## [2.0.0]! - 2016-09-30
288### Added
289- [`unambiguous`] rule: report modules that are not unambiguously ES modules.
290- `recommended` shared config. Roughly `errors` and `warnings` mixed together,
291 with some `parserOptions` in the mix. ([#402])
292- `react` shared config: added `jsx: true` to `parserOptions.ecmaFeatures`.
293- Added [`no-webpack-loader-syntax`] rule: forbid custom Webpack loader syntax in imports. ([#586], thanks [@fson]!)
294- Add option `newlines-between: "ignore"` to [`order`] ([#519])
295- Added [`no-unassigned-import`] rule ([#529])
296
297### Breaking
298- [`import/extensions` setting] defaults to `['.js']`. ([#306])
299- [`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])
300- [`newline-after-import`]: Removed need for an empty line after an inline `require` call ([#570])
301- [`order`]: Default value for `newlines-between` option is now `ignore` ([#519])
302
303### Changed
304- `imports-first` is renamed to [`first`]. `imports-first` alias will continue to
305 exist, but may be removed in a future major release.
306- Case-sensitivity: now specifically (and optionally) reported by [`no-unresolved`].
307 Other rules will ignore case-mismatches on paths on case-insensitive filesystems. ([#311])
308
309### Fixed
310- [`no-internal-modules`]: support `@`-scoped packages ([#577]+[#578], thanks [@spalger])
311
312## [1.16.0] - 2016-09-22
313### Added
314- Added [`no-dynamic-require`] rule: forbid `require()` calls with expressions. ([#567], [#568])
315- Added [`no-internal-modules`] rule: restrict deep package imports to specific folders. ([#485], thanks [@spalger]!)
316- [`extensions`]: allow override of a chosen default with options object ([#555], thanks [@ljharb]!)
317
318### Fixed
319- [`no-named-as-default`] no longer false-positives on `export default from '...'` ([#566], thanks [@preco21])
320- [`default`]: allow re-export of values from ignored files as default ([#545], thanks [@skyrpex])
321
322## [1.15.0] - 2016-09-12
323### Added
324- Added an `allow` option to [`no-nodejs-modules`] to allow exceptions ([#452], [#509]).
325- Added [`no-absolute-path`] rule ([#530], [#538])
326- [`max-dependencies`] for specifying the maximum number of dependencies (both `import` and `require`) a module can have. (see [#489], thanks [@tizmagik])
327- Added glob option to config for [`no-extraneous-dependencies`], after much bikeshedding. Thanks, [@knpwrs]! ([#527])
328
329### Fixed
330- [`no-named-as-default-member`] Allow default import to have a property named "default" ([#507], [#508], thanks [@jquense] for both!)
331
332## [1.14.0] - 2016-08-22
333### Added
334- [`import/parsers` setting]: parse some dependencies (i.e. TypeScript!) with a different parser than the ESLint-configured parser. ([#503])
335
336### Fixed
337- [`namespace`] exception for get property from `namespace` import, which are re-export from commonjs module ([#499] fixes [#416], thanks [@wKich])
338
339## [1.13.0] - 2016-08-11
340### Added
341- `allowComputed` option for [`namespace`] rule. If set to `true`, won't report
342 computed member references to namespaces. (see [#456])
343
344### Changed
345- Modified [`no-nodejs-modules`] error message to include the module's name ([#453], [#461])
346
347### Fixed
348- [`import/extensions` setting] is respected in spite of the appearance of imports
349 in an imported file. (fixes [#478], thanks [@rhys-vdw])
350
351## [1.12.0] - 2016-07-26
352### Added
353- [`import/external-module-folders` setting]: a possibility to configure folders for "external" modules ([#444], thanks [@zloirock])
354
355## [1.11.1] - 2016-07-20
356### Fixed
357- [`newline-after-import`] exception for `switch` branches with `require`s iff parsed as `sourceType:'module'`.
358 (still [#441], thanks again [@ljharb])
359
360## [1.11.0] - 2016-07-17
361### Added
362- Added an `peerDependencies` option to [`no-extraneous-dependencies`] to allow/forbid peer dependencies ([#423], [#428], thanks [@jfmengels]!).
363
364### Fixed
365- [`newline-after-import`] exception for multiple `require`s in an arrow
366 function expression (e.g. `() => require('a') || require('b')`). ([#441], thanks [@ljharb])
367
368## [1.10.3] - 2016-07-08
369### Fixed
370- removing `Symbol` dependencies (i.e. `for-of` loops) due to Node 0.10 polyfill
371 issue (see [#415]). Should not make any discernible semantic difference.
372
373## [1.10.2] - 2016-07-04
374### Fixed
375- Something horrible happened during `npm prepublish` of 1.10.1.
376 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!
377
378## [1.10.1] - 2016-07-02 [YANKED]
379### Added
380- Officially support ESLint 3.x. (peerDependencies updated to `2.x - 3.x`)
381
382## [1.10.0] - 2016-06-30
383### Added
384- Added new rule [`no-restricted-paths`]. ([#155]/[#371], thanks [@lo1tuma])
385- [`import/core-modules` setting]: allow configuration of additional module names,
386 to be treated as builtin modules (a la `path`, etc. in Node). ([#275] + [#365], thanks [@sindresorhus] for driving)
387- React Native shared config (based on comment from [#283])
388
389### Fixed
390- Fixed crash with `newline-after-import` related to the use of switch cases. (fixes [#386], thanks [@ljharb] for reporting) ([#395])
391
392## [1.9.2] - 2016-06-21
393### Fixed
394- Issues with ignored/CJS files in [`export`] and [`no-deprecated`] rules. ([#348], [#370])
395
396## [1.9.1] - 2016-06-16
397### Fixed
398- Reordered precedence for loading resolvers. ([#373])
399
400## [1.9.0] - 2016-06-10
401### Added
402- Added support TomDoc comments to [`no-deprecated`]. ([#321], thanks [@josh])
403- Added support for loading custom resolvers ([#314], thanks [@le0nik])
404
405### Fixed
406- [`prefer-default-export`] handles `export function` and `export const` in same file ([#359], thanks [@scottnonnenberg])
407
408## [1.8.1] - 2016-05-23
409### Fixed
410- `export * from 'foo'` now properly ignores a `default` export from `foo`, if any. ([#328]/[#332], thanks [@jkimbo])
411 This impacts all static analysis of imported names. ([`default`], [`named`], [`namespace`], [`export`])
412- Make [`order`]'s `newline-between` option handle multiline import statements ([#313], thanks [@singles])
413- Make [`order`]'s `newline-between` option handle not assigned import statements ([#313], thanks [@singles])
414- Make [`order`]'s `newline-between` option ignore `require` statements inside object literals ([#313], thanks [@singles])
415- [`prefer-default-export`] properly handles deep destructuring, `export * from ...`, and files with no exports. ([#342]+[#343], thanks [@scottnonnenberg])
416
417## [1.8.0] - 2016-05-11
418### Added
419- [`prefer-default-export`], new rule. ([#308], thanks [@gavriguy])
420
421### Fixed
422- Ignore namespace / ES7 re-exports in [`no-mutable-exports`]. ([#317], fixed by [#322]. thanks [@borisyankov] + [@jfmengels])
423- Make [`no-extraneous-dependencies`] handle scoped packages ([#316], thanks [@jfmengels])
424
425## [1.7.0] - 2016-05-06
426### Added
427- [`newline-after-import`], new rule. ([#245], thanks [@singles])
428- Added an `optionalDependencies` option to [`no-extraneous-dependencies`] to allow/forbid optional dependencies ([#266], thanks [@jfmengels]).
429- Added `newlines-between` option to [`order`] rule ([#298], thanks [@singles])
430- add [`no-mutable-exports`] rule ([#290], thanks [@josh])
431- [`import/extensions` setting]: a list of file extensions to parse as modules
432 and search for `export`s. If unspecified, all extensions are considered valid (for now).
433 In v2, this will likely default to `['.js', MODULE_EXT]`. ([#297], to fix [#267])
434
435### Fixed
436- [`extensions`]: fallback to source path for extension enforcement if imported
437 module is not resolved. Also, never report for builtins (i.e. `path`). ([#296])
438
439## [1.6.1] - 2016-04-28
440### Fixed
441- [`no-named-as-default-member`]: don't crash on rest props. ([#281], thanks [@SimenB])
442- support for Node 6: don't pass `null` to `path` functions.
443 Thanks to [@strawbrary] for bringing this up ([#272]) and adding OSX support to the Travis
444 config ([#288]).
445
446## [1.6.0] - 2016-04-25
447### Added
448- add [`no-named-as-default-member`] to `warnings` canned config
449- add [`no-extraneous-dependencies`] rule ([#241], thanks [@jfmengels])
450- add [`extensions`] rule ([#250], thanks [@lo1tuma])
451- add [`no-nodejs-modules`] rule ([#261], thanks [@jfmengels])
452- add [`order`] rule ([#247], thanks [@jfmengels])
453- consider `resolve.fallback` config option in the webpack resolver ([#254])
454
455### Changed
456- [`imports-first`] now allows directives (i.e. `'use strict'`) strictly before
457 any imports ([#256], thanks [@lemonmade])
458
459### Fixed
460- [`named`] now properly ignores the source module if a name is re-exported from
461 an ignored file (i.e. `node_modules`). Also improved the reported error. (thanks to [@jimbolla] for reporting)
462- [`no-named-as-default-member`] had a crash on destructuring in loops (thanks for heads up from [@lemonmade])
463
464## [1.5.0] - 2016-04-18
465### Added
466- report resolver errors at the top of the linted file
467- add [`no-namespace`] rule ([#239], thanks [@singles])
468- add [`no-named-as-default-member`] rule ([#243], thanks [@dmnd])
469
470### Changed
471- Rearranged rule groups in README in preparation for more style guide rules
472
473### Removed
474- support for Node 0.10, via `es6-*` ponyfills. Using native Map/Set/Symbol.
475
476## [1.4.0] - 2016-03-25
477### Added
478- Resolver plugin interface v2: more explicit response format that more clearly covers the found-but-core-module case, where there is no path.
479 Still backwards-compatible with the original version of the resolver spec.
480- [Resolver documentation](./resolvers/README.md)
481
482### Changed
483- using `package.json/files` instead of `.npmignore` for package file inclusion ([#228], thanks [@mathieudutour])
484- using `es6-*` ponyfills instead of `babel-runtime`
485
486## [1.3.0] - 2016-03-20
487Major perf improvements. Between parsing only once and ignoring gigantic, non-module `node_modules`,
488there is very little added time.
489
490My test project takes 17s to lint completely, down from 55s, when using the
491memoizing parser, and takes only 27s with naked `babel-eslint` (thus, reparsing local modules).
492
493### Added
494- This change log ([#216])
495- Experimental memoizing [parser](./memo-parser/README.md)
496
497### Fixed
498- Huge reduction in execution time by _only_ ignoring [`import/ignore` setting] if
499 something that looks like an `export` is detected in the module content.
500
501## [1.2.0] - 2016-03-19
502Thanks [@lencioni] for identifying a huge amount of rework in resolve and kicking
503off a bunch of memoization.
504
505I'm seeing 62% improvement over my normal test codebase when executing only
506[`no-unresolved`] in isolation, and ~35% total reduction in lint time.
507
508### Changed
509- added caching to core/resolve via [#214], configured via [`import/cache` setting]
510
511## [1.1.0] - 2016-03-15
512### Added
513- Added an [`ignore`](./docs/rules/no-unresolved.md#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.
514
515## [1.0.4] - 2016-03-11
516
517### Changed
518- respect hoisting for deep namespaces ([`namespace`]/[`no-deprecated`]) ([#211])
519
520### Fixed
521- don't crash on self references ([#210])
522- correct cache behavior in `eslint_d` for deep namespaces ([#200])
523
524## [1.0.3] - 2016-02-26
525
526### Changed
527- no-deprecated follows deep namespaces ([#191])
528
529### Fixed
530- [`namespace`] no longer flags modules with only a default export as having no names. (ns.default is valid ES6)
531
532## [1.0.2] - 2016-02-26
533
534### Fixed
535- don't parse imports with no specifiers ([#192])
536
537## [1.0.1] - 2016-02-25
538
539### Fixed
540- export `stage-0` shared config
541- documented [`no-deprecated`]
542- deep namespaces are traversed regardless of how they get imported ([#189])
543
544## [1.0.0] - 2016-02-24
545
546### Added
547- [`no-deprecated`]: WIP rule to let you know at lint time if you're using deprecated functions, constants, classes, or modules.
548
549### Changed
550- [`namespace`]: support deep namespaces ([#119] via [#157])
551
552## [1.0.0-beta.0] - 2016-02-13
553
554### Changed
555- support for (only) ESLint 2.x
556- no longer needs/refers to `import/parser` or `import/parse-options`. Instead, ESLint provides the configured parser + options to the rules, and they use that to parse dependencies.
557
558### Removed
559
560- `babylon` as default import parser (see Breaking)
561
562## [0.13.0] - 2016-02-08
563### Added
564- [`no-commonjs`] rule
565- [`no-amd`] rule
566
567### Removed
568- Removed vestigial `no-require` rule. [`no-commonjs`] is more complete.
569
570## [0.12.2] - 2016-02-06 [YANKED]
571Unpublished from npm and re-released as 0.13.0. See [#170].
572
573## [0.12.1] - 2015-12-17
574### Changed
575- Broke docs for rules out into individual files.
576
577## [0.12.0] - 2015-12-14
578### Changed
579- Ignore [`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.
580
581## [0.11.0] - 2015-11-27
582### Added
583- Resolver plugins. Now the linter can read Webpack config, properly follow aliases and ignore externals, dismisses inline loaders, etc. etc.!
584
585## Earlier releases (0.10.1 and younger)
586See [GitHub release notes](https://github.com/benmosher/eslint-plugin-import/releases?after=v0.11.0)
587for info on changes for earlier releases.
588
589
590[`import/cache` setting]: ./README.md#importcache
591[`import/ignore` setting]: ./README.md#importignore
592[`import/extensions` setting]: ./README.md#importextensions
593[`import/parsers` setting]: ./README.md#importparsers
594[`import/core-modules` setting]: ./README.md#importcore-modules
595[`import/external-module-folders` setting]: ./README.md#importexternal-module-folders
596[`internal-regex` setting]: ./README.md#importinternal-regex
597
598[`default`]: ./docs/rules/default.md
599[`dynamic-import-chunkname`]: ./docs/rules/dynamic-import-chunkname.md
600[`export`]: ./docs/rules/export.md
601[`exports-last`]: ./docs/rules/exports-last.md
602[`extensions`]: ./docs/rules/extensions.md
603[`first`]: ./docs/rules/first.md
604[`group-exports`]: ./docs/rules/group-exports.md
605[`imports-first`]: ./docs/rules/first.md
606[`max-dependencies`]: ./docs/rules/max-dependencies.md
607[`named`]: ./docs/rules/named.md
608[`namespace`]: ./docs/rules/namespace.md
609[`newline-after-import`]: ./docs/rules/newline-after-import.md
610[`no-absolute-path`]: ./docs/rules/no-absolute-path.md
611[`no-amd`]: ./docs/rules/no-amd.md
612[`no-anonymous-default-export`]: ./docs/rules/no-anonymous-default-export.md
613[`no-commonjs`]: ./docs/rules/no-commonjs.md
614[`no-cycle`]: ./docs/rules/no-cycle.md
615[`no-default-export`]: ./docs/rules/no-default-export.md
616[`no-deprecated`]: ./docs/rules/no-deprecated.md
617[`no-duplicates`]: ./docs/rules/no-duplicates.md
618[`no-dynamic-require`]: ./docs/rules/no-dynamic-require.md
619[`no-extraneous-dependencies`]: ./docs/rules/no-extraneous-dependencies.md
620[`no-internal-modules`]: ./docs/rules/no-internal-modules.md
621[`no-mutable-exports`]: ./docs/rules/no-mutable-exports.md
622[`no-named-as-default-member`]: ./docs/rules/no-named-as-default-member.md
623[`no-named-as-default`]: ./docs/rules/no-named-as-default.md
624[`no-named-default`]: ./docs/rules/no-named-default.md
625[`no-named-export`]: ./docs/rules/no-named-export.md
626[`no-namespace`]: ./docs/rules/no-namespace.md
627[`no-nodejs-modules`]: ./docs/rules/no-nodejs-modules.md
628[`no-restricted-paths`]: ./docs/rules/no-restricted-paths.md
629[`no-self-import`]: ./docs/rules/no-self-import.md
630[`no-unassigned-import`]: ./docs/rules/no-unassigned-import.md
631[`no-unresolved`]: ./docs/rules/no-unresolved.md
632[`no-unused-modules`]: ./docs/rules/no-unused-modules.md
633[`no-useless-path-segments`]: ./docs/rules/no-useless-path-segments.md
634[`no-webpack-loader-syntax`]: ./docs/rules/no-webpack-loader-syntax.md
635[`order`]: ./docs/rules/order.md
636[`prefer-default-export`]: ./docs/rules/prefer-default-export.md
637[`unambiguous`]: ./docs/rules/unambiguous.md
638
639[`memo-parser`]: ./memo-parser/README.md
640
641[#1589]: https://github.com/benmosher/eslint-plugin-import/issues/1589
642[#1586]: https://github.com/benmosher/eslint-plugin-import/pull/1586
643[#1572]: https://github.com/benmosher/eslint-plugin-import/pull/1572
644[#1563]: https://github.com/benmosher/eslint-plugin-import/pull/1563
645[#1560]: https://github.com/benmosher/eslint-plugin-import/pull/1560
646[#1551]: https://github.com/benmosher/eslint-plugin-import/pull/1551
647[#1542]: https://github.com/benmosher/eslint-plugin-import/pull/1542
648[#1526]: https://github.com/benmosher/eslint-plugin-import/pull/1526
649[#1521]: https://github.com/benmosher/eslint-plugin-import/pull/1521
650[#1519]: https://github.com/benmosher/eslint-plugin-import/pull/1519
651[#1507]: https://github.com/benmosher/eslint-plugin-import/pull/1507
652[#1506]: https://github.com/benmosher/eslint-plugin-import/pull/1506
653[#1496]: https://github.com/benmosher/eslint-plugin-import/pull/1496
654[#1495]: https://github.com/benmosher/eslint-plugin-import/pull/1495
655[#1494]: https://github.com/benmosher/eslint-plugin-import/pull/1494
656[#1493]: https://github.com/benmosher/eslint-plugin-import/pull/1493
657[#1472]: https://github.com/benmosher/eslint-plugin-import/pull/1472
658[#1470]: https://github.com/benmosher/eslint-plugin-import/pull/1470
659[#1439]: https://github.com/benmosher/eslint-plugin-import/pull/1439
660[#1436]: https://github.com/benmosher/eslint-plugin-import/pull/1436
661[#1435]: https://github.com/benmosher/eslint-plugin-import/pull/1435
662[#1425]: https://github.com/benmosher/eslint-plugin-import/pull/1425
663[#1419]: https://github.com/benmosher/eslint-plugin-import/pull/1419
664[#1412]: https://github.com/benmosher/eslint-plugin-import/pull/1412
665[#1409]: https://github.com/benmosher/eslint-plugin-import/pull/1409
666[#1404]: https://github.com/benmosher/eslint-plugin-import/pull/1404
667[#1401]: https://github.com/benmosher/eslint-plugin-import/pull/1401
668[#1393]: https://github.com/benmosher/eslint-plugin-import/pull/1393
669[#1389]: https://github.com/benmosher/eslint-plugin-import/pull/1389
670[#1386]: https://github.com/benmosher/eslint-plugin-import/pull/1386
671[#1377]: https://github.com/benmosher/eslint-plugin-import/pull/1377
672[#1375]: https://github.com/benmosher/eslint-plugin-import/pull/1375
673[#1372]: https://github.com/benmosher/eslint-plugin-import/pull/1372
674[#1371]: https://github.com/benmosher/eslint-plugin-import/pull/1371
675[#1370]: https://github.com/benmosher/eslint-plugin-import/pull/1370
676[#1363]: https://github.com/benmosher/eslint-plugin-import/pull/1363
677[#1360]: https://github.com/benmosher/eslint-plugin-import/pull/1360
678[#1358]: https://github.com/benmosher/eslint-plugin-import/pull/1358
679[#1356]: https://github.com/benmosher/eslint-plugin-import/pull/1356
680[#1354]: https://github.com/benmosher/eslint-plugin-import/pull/1354
681[#1352]: https://github.com/benmosher/eslint-plugin-import/pull/1352
682[#1347]: https://github.com/benmosher/eslint-plugin-import/pull/1347
683[#1345]: https://github.com/benmosher/eslint-plugin-import/pull/1345
684[#1342]: https://github.com/benmosher/eslint-plugin-import/pull/1342
685[#1340]: https://github.com/benmosher/eslint-plugin-import/pull/1340
686[#1333]: https://github.com/benmosher/eslint-plugin-import/pull/1333
687[#1331]: https://github.com/benmosher/eslint-plugin-import/pull/1331
688[#1330]: https://github.com/benmosher/eslint-plugin-import/pull/1330
689[#1320]: https://github.com/benmosher/eslint-plugin-import/pull/1320
690[#1319]: https://github.com/benmosher/eslint-plugin-import/pull/1319
691[#1312]: https://github.com/benmosher/eslint-plugin-import/pull/1312
692[#1308]: https://github.com/benmosher/eslint-plugin-import/pull/1308
693[#1304]: https://github.com/benmosher/eslint-plugin-import/pull/1304
694[#1297]: https://github.com/benmosher/eslint-plugin-import/pull/1297
695[#1295]: https://github.com/benmosher/eslint-plugin-import/pull/1295
696[#1294]: https://github.com/benmosher/eslint-plugin-import/pull/1294
697[#1290]: https://github.com/benmosher/eslint-plugin-import/pull/1290
698[#1277]: https://github.com/benmosher/eslint-plugin-import/pull/1277
699[#1257]: https://github.com/benmosher/eslint-plugin-import/pull/1257
700[#1253]: https://github.com/benmosher/eslint-plugin-import/pull/1253
701[#1248]: https://github.com/benmosher/eslint-plugin-import/pull/1248
702[#1238]: https://github.com/benmosher/eslint-plugin-import/pull/1238
703[#1235]: https://github.com/benmosher/eslint-plugin-import/pull/1235
704[#1234]: https://github.com/benmosher/eslint-plugin-import/pull/1234
705[#1232]: https://github.com/benmosher/eslint-plugin-import/pull/1232
706[#1218]: https://github.com/benmosher/eslint-plugin-import/pull/1218
707[#1176]: https://github.com/benmosher/eslint-plugin-import/pull/1176
708[#1163]: https://github.com/benmosher/eslint-plugin-import/pull/1163
709[#1157]: https://github.com/benmosher/eslint-plugin-import/pull/1157
710[#1151]: https://github.com/benmosher/eslint-plugin-import/pull/1151
711[#1142]: https://github.com/benmosher/eslint-plugin-import/pull/1142
712[#1137]: https://github.com/benmosher/eslint-plugin-import/pull/1137
713[#1135]: https://github.com/benmosher/eslint-plugin-import/pull/1135
714[#1128]: https://github.com/benmosher/eslint-plugin-import/pull/1128
715[#1126]: https://github.com/benmosher/eslint-plugin-import/pull/1126
716[#1122]: https://github.com/benmosher/eslint-plugin-import/pull/1122
717[#1112]: https://github.com/benmosher/eslint-plugin-import/pull/1112
718[#1107]: https://github.com/benmosher/eslint-plugin-import/pull/1107
719[#1106]: https://github.com/benmosher/eslint-plugin-import/pull/1106
720[#1105]: https://github.com/benmosher/eslint-plugin-import/pull/1105
721[#1093]: https://github.com/benmosher/eslint-plugin-import/pull/1093
722[#1085]: https://github.com/benmosher/eslint-plugin-import/pull/1085
723[#1068]: https://github.com/benmosher/eslint-plugin-import/pull/1068
724[#1049]: https://github.com/benmosher/eslint-plugin-import/pull/1049
725[#1046]: https://github.com/benmosher/eslint-plugin-import/pull/1046
726[#944]: https://github.com/benmosher/eslint-plugin-import/pull/944
727[#912]: https://github.com/benmosher/eslint-plugin-import/pull/912
728[#908]: https://github.com/benmosher/eslint-plugin-import/pull/908
729[#891]: https://github.com/benmosher/eslint-plugin-import/pull/891
730[#889]: https://github.com/benmosher/eslint-plugin-import/pull/889
731[#880]: https://github.com/benmosher/eslint-plugin-import/pull/880
732[#871]: https://github.com/benmosher/eslint-plugin-import/pull/871
733[#858]: https://github.com/benmosher/eslint-plugin-import/pull/858
734[#843]: https://github.com/benmosher/eslint-plugin-import/pull/843
735[#797]: https://github.com/benmosher/eslint-plugin-import/pull/797
736[#794]: https://github.com/benmosher/eslint-plugin-import/pull/794
737[#744]: https://github.com/benmosher/eslint-plugin-import/pull/744
738[#742]: https://github.com/benmosher/eslint-plugin-import/pull/742
739[#737]: https://github.com/benmosher/eslint-plugin-import/pull/737
740[#727]: https://github.com/benmosher/eslint-plugin-import/pull/727
741[#721]: https://github.com/benmosher/eslint-plugin-import/pull/721
742[#712]: https://github.com/benmosher/eslint-plugin-import/pull/712
743[#696]: https://github.com/benmosher/eslint-plugin-import/pull/696
744[#685]: https://github.com/benmosher/eslint-plugin-import/pull/685
745[#680]: https://github.com/benmosher/eslint-plugin-import/pull/680
746[#654]: https://github.com/benmosher/eslint-plugin-import/pull/654
747[#639]: https://github.com/benmosher/eslint-plugin-import/pull/639
748[#632]: https://github.com/benmosher/eslint-plugin-import/pull/632
749[#630]: https://github.com/benmosher/eslint-plugin-import/pull/630
750[#629]: https://github.com/benmosher/eslint-plugin-import/pull/629
751[#628]: https://github.com/benmosher/eslint-plugin-import/pull/628
752[#596]: https://github.com/benmosher/eslint-plugin-import/pull/596
753[#586]: https://github.com/benmosher/eslint-plugin-import/pull/586
754[#578]: https://github.com/benmosher/eslint-plugin-import/pull/578
755[#568]: https://github.com/benmosher/eslint-plugin-import/pull/568
756[#555]: https://github.com/benmosher/eslint-plugin-import/pull/555
757[#538]: https://github.com/benmosher/eslint-plugin-import/pull/538
758[#527]: https://github.com/benmosher/eslint-plugin-import/pull/527
759[#509]: https://github.com/benmosher/eslint-plugin-import/pull/509
760[#508]: https://github.com/benmosher/eslint-plugin-import/pull/508
761[#503]: https://github.com/benmosher/eslint-plugin-import/pull/503
762[#499]: https://github.com/benmosher/eslint-plugin-import/pull/499
763[#489]: https://github.com/benmosher/eslint-plugin-import/pull/489
764[#485]: https://github.com/benmosher/eslint-plugin-import/pull/485
765[#461]: https://github.com/benmosher/eslint-plugin-import/pull/461
766[#449]: https://github.com/benmosher/eslint-plugin-import/pull/449
767[#444]: https://github.com/benmosher/eslint-plugin-import/pull/444
768[#428]: https://github.com/benmosher/eslint-plugin-import/pull/428
769[#395]: https://github.com/benmosher/eslint-plugin-import/pull/395
770[#371]: https://github.com/benmosher/eslint-plugin-import/pull/371
771[#365]: https://github.com/benmosher/eslint-plugin-import/pull/365
772[#359]: https://github.com/benmosher/eslint-plugin-import/pull/359
773[#343]: https://github.com/benmosher/eslint-plugin-import/pull/343
774[#332]: https://github.com/benmosher/eslint-plugin-import/pull/332
775[#322]: https://github.com/benmosher/eslint-plugin-import/pull/322
776[#321]: https://github.com/benmosher/eslint-plugin-import/pull/321
777[#316]: https://github.com/benmosher/eslint-plugin-import/pull/316
778[#314]: https://github.com/benmosher/eslint-plugin-import/pull/314
779[#308]: https://github.com/benmosher/eslint-plugin-import/pull/308
780[#298]: https://github.com/benmosher/eslint-plugin-import/pull/298
781[#297]: https://github.com/benmosher/eslint-plugin-import/pull/297
782[#296]: https://github.com/benmosher/eslint-plugin-import/pull/296
783[#290]: https://github.com/benmosher/eslint-plugin-import/pull/290
784[#289]: https://github.com/benmosher/eslint-plugin-import/pull/289
785[#288]: https://github.com/benmosher/eslint-plugin-import/pull/288
786[#287]: https://github.com/benmosher/eslint-plugin-import/pull/287
787[#278]: https://github.com/benmosher/eslint-plugin-import/pull/278
788[#261]: https://github.com/benmosher/eslint-plugin-import/pull/261
789[#256]: https://github.com/benmosher/eslint-plugin-import/pull/256
790[#254]: https://github.com/benmosher/eslint-plugin-import/pull/254
791[#250]: https://github.com/benmosher/eslint-plugin-import/pull/250
792[#247]: https://github.com/benmosher/eslint-plugin-import/pull/247
793[#245]: https://github.com/benmosher/eslint-plugin-import/pull/245
794[#243]: https://github.com/benmosher/eslint-plugin-import/pull/243
795[#241]: https://github.com/benmosher/eslint-plugin-import/pull/241
796[#239]: https://github.com/benmosher/eslint-plugin-import/pull/239
797[#228]: https://github.com/benmosher/eslint-plugin-import/pull/228
798[#211]: https://github.com/benmosher/eslint-plugin-import/pull/211
799[#164]: https://github.com/benmosher/eslint-plugin-import/pull/164
800[#157]: https://github.com/benmosher/eslint-plugin-import/pull/157
801[#1565]: https://github.com/benmosher/eslint-plugin-import/issues/1565
802[#1366]: https://github.com/benmosher/eslint-plugin-import/issues/1366
803[#1334]: https://github.com/benmosher/eslint-plugin-import/issues/1334
804[#1323]: https://github.com/benmosher/eslint-plugin-import/issues/1323
805[#1322]: https://github.com/benmosher/eslint-plugin-import/issues/1322
806[#1300]: https://github.com/benmosher/eslint-plugin-import/issues/1300
807[#1293]: https://github.com/benmosher/eslint-plugin-import/issues/1293
808[#1266]: https://github.com/benmosher/eslint-plugin-import/issues/1266
809[#1256]: https://github.com/benmosher/eslint-plugin-import/issues/1256
810[#1233]: https://github.com/benmosher/eslint-plugin-import/issues/1233
811[#1175]: https://github.com/benmosher/eslint-plugin-import/issues/1175
812[#1166]: https://github.com/benmosher/eslint-plugin-import/issues/1166
813[#1144]: https://github.com/benmosher/eslint-plugin-import/issues/1144
814[#1058]: https://github.com/benmosher/eslint-plugin-import/issues/1058
815[#1035]: https://github.com/benmosher/eslint-plugin-import/issues/1035
816[#931]: https://github.com/benmosher/eslint-plugin-import/issues/931
817[#886]: https://github.com/benmosher/eslint-plugin-import/issues/886
818[#863]: https://github.com/benmosher/eslint-plugin-import/issues/863
819[#842]: https://github.com/benmosher/eslint-plugin-import/issues/842
820[#839]: https://github.com/benmosher/eslint-plugin-import/issues/839
821[#795]: https://github.com/benmosher/eslint-plugin-import/issues/795
822[#793]: https://github.com/benmosher/eslint-plugin-import/issues/793
823[#720]: https://github.com/benmosher/eslint-plugin-import/issues/720
824[#717]: https://github.com/benmosher/eslint-plugin-import/issues/717
825[#686]: https://github.com/benmosher/eslint-plugin-import/issues/686
826[#671]: https://github.com/benmosher/eslint-plugin-import/issues/671
827[#660]: https://github.com/benmosher/eslint-plugin-import/issues/660
828[#653]: https://github.com/benmosher/eslint-plugin-import/issues/653
829[#627]: https://github.com/benmosher/eslint-plugin-import/issues/627
830[#620]: https://github.com/benmosher/eslint-plugin-import/issues/620
831[#609]: https://github.com/benmosher/eslint-plugin-import/issues/609
832[#604]: https://github.com/benmosher/eslint-plugin-import/issues/604
833[#602]: https://github.com/benmosher/eslint-plugin-import/issues/602
834[#601]: https://github.com/benmosher/eslint-plugin-import/issues/601
835[#592]: https://github.com/benmosher/eslint-plugin-import/issues/592
836[#577]: https://github.com/benmosher/eslint-plugin-import/issues/577
837[#570]: https://github.com/benmosher/eslint-plugin-import/issues/570
838[#567]: https://github.com/benmosher/eslint-plugin-import/issues/567
839[#566]: https://github.com/benmosher/eslint-plugin-import/issues/566
840[#545]: https://github.com/benmosher/eslint-plugin-import/issues/545
841[#530]: https://github.com/benmosher/eslint-plugin-import/issues/530
842[#529]: https://github.com/benmosher/eslint-plugin-import/issues/529
843[#519]: https://github.com/benmosher/eslint-plugin-import/issues/519
844[#507]: https://github.com/benmosher/eslint-plugin-import/issues/507
845[#484]: https://github.com/benmosher/eslint-plugin-import/issues/484
846[#478]: https://github.com/benmosher/eslint-plugin-import/issues/478
847[#456]: https://github.com/benmosher/eslint-plugin-import/issues/456
848[#453]: https://github.com/benmosher/eslint-plugin-import/issues/453
849[#452]: https://github.com/benmosher/eslint-plugin-import/issues/452
850[#447]: https://github.com/benmosher/eslint-plugin-import/issues/447
851[#441]: https://github.com/benmosher/eslint-plugin-import/issues/441
852[#423]: https://github.com/benmosher/eslint-plugin-import/issues/423
853[#416]: https://github.com/benmosher/eslint-plugin-import/issues/416
854[#415]: https://github.com/benmosher/eslint-plugin-import/issues/415
855[#402]: https://github.com/benmosher/eslint-plugin-import/issues/402
856[#386]: https://github.com/benmosher/eslint-plugin-import/issues/386
857[#373]: https://github.com/benmosher/eslint-plugin-import/issues/373
858[#370]: https://github.com/benmosher/eslint-plugin-import/issues/370
859[#348]: https://github.com/benmosher/eslint-plugin-import/issues/348
860[#342]: https://github.com/benmosher/eslint-plugin-import/issues/342
861[#328]: https://github.com/benmosher/eslint-plugin-import/issues/328
862[#317]: https://github.com/benmosher/eslint-plugin-import/issues/317
863[#313]: https://github.com/benmosher/eslint-plugin-import/issues/313
864[#311]: https://github.com/benmosher/eslint-plugin-import/issues/311
865[#306]: https://github.com/benmosher/eslint-plugin-import/issues/306
866[#286]: https://github.com/benmosher/eslint-plugin-import/issues/286
867[#283]: https://github.com/benmosher/eslint-plugin-import/issues/283
868[#281]: https://github.com/benmosher/eslint-plugin-import/issues/281
869[#275]: https://github.com/benmosher/eslint-plugin-import/issues/275
870[#272]: https://github.com/benmosher/eslint-plugin-import/issues/272
871[#270]: https://github.com/benmosher/eslint-plugin-import/issues/270
872[#267]: https://github.com/benmosher/eslint-plugin-import/issues/267
873[#266]: https://github.com/benmosher/eslint-plugin-import/issues/266
874[#216]: https://github.com/benmosher/eslint-plugin-import/issues/216
875[#214]: https://github.com/benmosher/eslint-plugin-import/issues/214
876[#210]: https://github.com/benmosher/eslint-plugin-import/issues/210
877[#200]: https://github.com/benmosher/eslint-plugin-import/issues/200
878[#192]: https://github.com/benmosher/eslint-plugin-import/issues/192
879[#191]: https://github.com/benmosher/eslint-plugin-import/issues/191
880[#189]: https://github.com/benmosher/eslint-plugin-import/issues/189
881[#170]: https://github.com/benmosher/eslint-plugin-import/issues/170
882[#155]: https://github.com/benmosher/eslint-plugin-import/issues/155
883[#119]: https://github.com/benmosher/eslint-plugin-import/issues/119
884[#89]: https://github.com/benmosher/eslint-plugin-import/issues/89
885
886[Unreleased]: https://github.com/benmosher/eslint-plugin-import/compare/v2.20.0...HEAD
887[2.19.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.19.1...v2.20.0
888[2.19.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.19.0...v2.19.1
889[2.19.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.18.2...v2.19.0
890[2.18.2]: https://github.com/benmosher/eslint-plugin-import/compare/v2.18.1...v2.18.2
891[2.18.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.18.0...v2.18.1
892[2.18.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.17.3...v2.18.0
893[2.17.3]: https://github.com/benmosher/eslint-plugin-import/compare/v2.17.2...v2.17.3
894[2.17.2]: https://github.com/benmosher/eslint-plugin-import/compare/v2.17.1...v2.17.2
895[2.17.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.17.0...v2.17.1
896[2.17.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.16.0...v2.17.0
897[2.16.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.15.0...v2.16.0
898[2.15.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.14.0...v2.15.0
899[2.14.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.13.0...v2.14.0
900[2.13.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.12.0...v2.13.0
901[2.12.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.11.0...v2.12.0
902[2.11.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.10.0...v2.11.0
903[2.10.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.9.0...v2.10.0
904[2.9.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.8.0...v2.9.0
905[2.8.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.7.0...v2.8.0
906[2.7.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.6.1...v2.7.0
907[2.6.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.6.0...v2.6.1
908[2.6.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.5.0...v2.6.0
909[2.5.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.4.0...v2.5.0
910[2.4.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.3.0...v2.4.0
911[2.3.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.2.0...v2.3.0
912[2.2.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.1.0...v2.2.0
913[2.1.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.0.1...v2.1.0
914[2.0.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.0.0...v2.0.1
915[2.0.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.16.0...v2.0.0
916[1.16.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.15.0...v1.16.0
917[1.15.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.14.0...v1.15.0
918[1.14.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.13.0...v1.14.0
919[1.13.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.12.0...v1.13.0
920[1.12.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.11.1...v1.12.0
921[1.11.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.11.0...v1.11.1
922[1.11.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.10.3...v1.11.0
923[1.10.3]: https://github.com/benmosher/eslint-plugin-import/compare/v1.10.2...v1.10.3
924[1.10.2]: https://github.com/benmosher/eslint-plugin-import/compare/v1.10.1...v1.10.2
925[1.10.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.10.0...v1.10.1
926[1.10.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.9.2...v1.10.0
927[1.9.2]: https://github.com/benmosher/eslint-plugin-import/compare/v1.9.1...v1.9.2
928[1.9.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.9.0...v1.9.1
929[1.9.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.8.1...v1.9.0
930[1.8.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.8.0...v1.8.1
931[1.8.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.7.0...v1.8.0
932[1.7.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.6.1...v1.7.0
933[1.6.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.6.0...v1.6.1
934[1.6.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.5.0...1.6.0
935[1.5.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.4.0...v1.5.0
936[1.4.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.3.0...v1.4.0
937[1.3.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.2.0...v1.3.0
938[1.2.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.1.0...v1.2.0
939[1.1.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.0.4...v1.1.0
940[1.0.4]: https://github.com/benmosher/eslint-plugin-import/compare/v1.0.3...v1.0.4
941[1.0.3]: https://github.com/benmosher/eslint-plugin-import/compare/v1.0.2...v1.0.3
942[1.0.2]: https://github.com/benmosher/eslint-plugin-import/compare/v1.0.1...v1.0.2
943[1.0.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.0.0...v1.0.1
944[1.0.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.0.0-beta.0...v1.0.0
945[1.0.0-beta.0]: https://github.com/benmosher/eslint-plugin-import/compare/v0.13.0...v1.0.0-beta.0
946[0.13.0]: https://github.com/benmosher/eslint-plugin-import/compare/v0.12.1...v0.13.0
947[0.12.2]: https://github.com/benmosher/eslint-plugin-import/compare/v0.12.1...v0.12.2
948[0.12.1]: https://github.com/benmosher/eslint-plugin-import/compare/v0.12.0...v0.12.1
949[0.12.0]: https://github.com/benmosher/eslint-plugin-import/compare/v0.11.0...v0.12.0
950[0.11.0]: https://github.com/benmosher/eslint-plugin-import/compare/v0.10.1...v0.11.0
951[@mathieudutour]: https://github.com/mathieudutour
952[@gausie]: https://github.com/gausie
953[@singles]: https://github.com/singles
954[@jfmengels]: https://github.com/jfmengels
955[@lo1tuma]: https://github.com/lo1tuma
956[@dmnd]: https://github.com/dmnd
957[@lemonmade]: https://github.com/lemonmade
958[@jimbolla]: https://github.com/jimbolla
959[@jquense]: https://github.com/jquense
960[@jonboiser]: https://github.com/jonboiser
961[@taion]: https://github.com/taion
962[@strawbrary]: https://github.com/strawbrary
963[@SimenB]: https://github.com/SimenB
964[@josh]: https://github.com/josh
965[@borisyankov]: https://github.com/borisyankov
966[@gavriguy]: https://github.com/gavriguy
967[@jkimbo]: https://github.com/jkimbo
968[@le0nik]: https://github.com/le0nik
969[@scottnonnenberg]: https://github.com/scottnonnenberg
970[@sindresorhus]: https://github.com/sindresorhus
971[@ljharb]: https://github.com/ljharb
972[@rhettlivingston]: https://github.com/rhettlivingston
973[@zloirock]: https://github.com/zloirock
974[@rhys-vdw]: https://github.com/rhys-vdw
975[@wKich]: https://github.com/wKich
976[@tizmagik]: https://github.com/tizmagik
977[@knpwrs]: https://github.com/knpwrs
978[@spalger]: https://github.com/spalger
979[@preco21]: https://github.com/preco21
980[@skyrpex]: https://github.com/skyrpex
981[@fson]: https://github.com/fson
982[@ntdb]: https://github.com/ntdb
983[@jakubsta]: https://github.com/jakubsta
984[@wtgtybhertgeghgtwtg]: https://github.com/wtgtybhertgeghgtwtg
985[@duncanbeevers]: https://github.com/duncanbeevers
986[@giodamelio]: https://github.com/giodamelio
987[@ntdb]: https://github.com/ntdb
988[@ramasilveyra]: https://github.com/ramasilveyra
989[@sompylasar]: https://github.com/sompylasar
990[@kevin940726]: https://github.com/kevin940726
991[@eelyafi]: https://github.com/eelyafi
992[@mastilver]: https://github.com/mastilver
993[@jseminck]: https://github.com/jseminck
994[@laysent]: https://github.com/laysent
995[@k15a]: https://github.com/k15a
996[@mplewis]: https://github.com/mplewis
997[@rosswarren]: https://github.com/rosswarren
998[@alexgorbatchev]: https://github.com/alexgorbatchev
999[@tihonove]: https://github.com/tihonove
1000[@robertrossmann]: https://github.com/robertrossmann
1001[@isiahmeadows]: https://github.com/isiahmeadows
1002[@graingert]: https://github.com/graingert
1003[@danny-andrews]: https://github.com/dany-andrews
1004[@fengkfengk]: https://github.com/fengkfengk
1005[@futpib]: https://github.com/futpib
1006[@klimashkin]: https://github.com/klimashkin
1007[@lukeapage]: https://github.com/lukeapage
1008[@manovotny]: https://github.com/manovotny
1009[@mattijsbliek]: https://github.com/mattijsbliek
1010[@hulkish]: https://github.com/hulkish
1011[@chrislloyd]: https://github.com/chrislloyd
1012[@ai]: https://github.com/ai
1013[@syymza]: https://github.com/syymza
1014[@justinanastos]: https://github.com/justinanastos
1015[@1pete]: https://github.com/1pete
1016[@gajus]: https://github.com/gajus
1017[@jf248]: https://github.com/jf248
1018[@aravindet]: https://github.com/aravindet
1019[@pzhine]: https://github.com/pzhine
1020[@st-sloth]: https://github.com/st-sloth
1021[@ljqx]: https://github.com/ljqx
1022[@kirill-konshin]: https://github.com/kirill-konshin
1023[@asapach]: https://github.com/asapach
1024[@sergei-startsev]: https://github.com/sergei-startsev
1025[@ephys]: https://github.com/ephys
1026[@lydell]: https://github.com/lydell
1027[@jeffshaver]: https://github.com/jeffshaver
1028[@timkraut]: https://github.com/timkraut
1029[@TakeScoop]: https://github.com/TakeScoop
1030[@rfermann]: https://github.com/rfermann
1031[@bradennapier]: https://github.com/bradennapier
1032[@schmod]: https://github.com/schmod
1033[@echenley]: https://github.com/echenley
1034[@vikr01]: https://github.com/vikr01
1035[@bradzacher]: https://github.com/bradzacher
1036[@feychenie]: https://github.com/feychenie
1037[@kiwka]: https://github.com/kiwka
1038[@loganfsmyth]: https://github.com/loganfsmyth
1039[@johndevedu]: https://github.com/johndevedu
1040[@charlessuh]: https://github.com/charlessuh
1041[@kgregory]: https://github.com/kgregory
1042[@christophercurrie]: https://github.com/christophercurrie
1043[@alex-page]: https://github.com/alex-page
1044[@benmosher]: https://github.com/benmosher
1045[@fooloomanzoo]: https://github.com/fooloomanzoo
1046[@sheepsteak]: https://github.com/sheepsteak
1047[@sharmilajesupaul]: https://github.com/sharmilajesupaul
1048[@lencioni]: https://github.com/lencioni
1049[@JounQin]: https://github.com/JounQin
1050[@atikenny]: https://github.com/atikenny
1051[@schmidsi]: https://github.com/schmidsi
1052[@TrevorBurnham]: https://github.com/TrevorBurnham
1053[@benmunro]: https://github.com/benmunro
1054[@tihonove]: https://github.com/tihonove
1055[@brendo]: https://github.com/brendo
1056[@saschanaz]: https://github.com/saschanaz
1057[@brettz9]: https://github.com/brettz9
1058[@Taranys]: https://github.com/Taranys
1059[@maxmalov]: https://github.com/maxmalov
1060[@marcusdarmstrong]: https://github.com/marcusdarmstrong
1061[@Mairu]: https://github.com/Mairu
1062[@aamulumi]: https://github.com/aamulumi
1063[@pcorpet]: https://github.com/pcorpet
1064[@stropho]: https://github.com/stropho
1065[@luczsoma]: https://github.com/luczsoma
1066[@christophercurrie]: https://github.com/christophercurrie
1067[@randallreedjr]: https://github.com/randallreedjr
1068[@Pessimistress]: https://github.com/Pessimistress
1069[@stekycz]: https://github.com/stekycz
1070[@dbrewer5]: https://github.com/dbrewer5
1071[@rsolomon]: https://github.com/rsolomon
1072[@joaovieira]: https://github.com/joaovieira
1073[@ivo-stefchev]: https://github.com/ivo-stefchev