UNPKG

20 kBMarkdownView Raw
1# Change Log
2All notable changes to this project will be documented in this file.
3This project adheres to [Semantic Versioning](http://semver.org/).
4This change log adheres to standards from [Keep a CHANGELOG](http://keepachangelog.com).
5
6## [Unreleased]
7
8## [1.13.0] - 2016-08-11
9### Added
10- `allowComputed` option for [`namespace`] rule. If set to `true`, won't report
11 computed member references to namespaces. (see [#456])
12
13### Changed
14- Modified [`no-nodejs-modules`] error message to include the module's name ([#453], [#461])
15
16### Fixed
17- [`import/extensions` setting] is respected in spite of the appearance of imports
18 in an imported file. (fixes [#478], thanks [@rhys-vdw])
19
20## [1.12.0] - 2016-07-26
21### Added
22- [`import/external-module-folders` setting]: a possibility to configure folders for "external" modules ([#444], thanks [@zloirock])
23
24## [1.11.1] - 2016-07-20
25### Fixed
26- [`newline-after-import`] exception for `switch` branches with `require`s iff parsed as `sourceType:'module'`.
27 (still [#441], thanks again [@ljharb])
28
29## [1.11.0] - 2016-07-17
30### Added
31- Added an `peerDependencies` option to [`no-extraneous-dependencies`] to allow/forbid peer dependencies ([#423], [#428], thanks [@jfmengels]!).
32
33### Fixed
34- [`newline-after-import`] exception for multiple `require`s in an arrow
35 function expression (e.g. `() => require('a') || require('b')`). ([#441], thanks [@ljharb])
36
37## [1.10.3] - 2016-07-08
38### Fixed
39- removing `Symbol` dependencies (i.e. `for-of` loops) due to Node 0.10 polyfill
40 issue (see [#415]). Should not make any discernible semantic difference.
41
42## [1.10.2] - 2016-07-04
43### Fixed
44- Something horrible happened during `npm prepublish` of 1.10.1.
45 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!
46
47## [1.10.1] - 2016-07-02 [YANKED]
48### Added
49- Officially support ESLint 3.x. (peerDependencies updated to `2.x - 3.x`)
50
51## [1.10.0] - 2016-06-30
52### Added
53- Added new rule [`no-restricted-paths`]. ([#155]/[#371], thanks [@lo1tuma])
54- [`import/core-modules` setting]: allow configuration of additional module names,
55 to be treated as builtin modules (a la `path`, etc. in Node). ([#275] + [#365], thanks [@sindresorhus] for driving)
56- React Native shared config (based on comment from [#283])
57
58### Fixed
59- Fixed crash with `newline-after-import` related to the use of switch cases. (fixes [#386], thanks [@ljharb] for reporting) ([#395])
60
61## [1.9.2] - 2016-06-21
62### Fixed
63- Issues with ignored/CJS files in [`export`] and [`no-deprecated`] rules. ([#348], [#370])
64
65## [1.9.1] - 2016-06-16
66### Fixed
67- Reordered precedence for loading resolvers. ([#373])
68
69## [1.9.0] - 2016-06-10
70### Added
71- Added support TomDoc comments to [`no-deprecated`]. ([#321], thanks [@josh])
72- Added support for loading custom resolvers ([#314], thanks [@le0nik])
73
74### Fixed
75- [`prefer-default-export`] handles `export function` and `export const` in same file ([#359], thanks [@scottnonnenberg])
76
77## [1.8.1] - 2016-05-23
78### Fixed
79- `export * from 'foo'` now properly ignores a `default` export from `foo`, if any. ([#328]/[#332], thanks [@jkimbo])
80 This impacts all static analysis of imported names. ([`default`], [`named`], [`namespace`], [`export`])
81- Make [`order`]'s `newline-between` option handle multiline import statements ([#313], thanks [@singles])
82- Make [`order`]'s `newline-between` option handle not assigned import statements ([#313], thanks [@singles])
83- Make [`order`]'s `newline-between` option ignore `require` statements inside object literals ([#313], thanks [@singles])
84- [`prefer-default-export`] properly handles deep destructuring, `export * from ...`, and files with no exports. ([#342]+[#343], thanks [@scottnonnenberg])
85
86## [1.8.0] - 2016-05-11
87### Added
88- [`prefer-default-export`], new rule. ([#308], thanks [@gavriguy])
89
90### Fixed
91- Ignore namespace / ES7 re-exports in [`no-mutable-exports`]. ([#317], fixed by [#322]. thanks [@borisyankov] + [@jfmengels])
92- Make [`no-extraneous-dependencies`] handle scoped packages ([#316], thanks [@jfmengels])
93
94## [1.7.0] - 2016-05-06
95### Added
96- [`newline-after-import`], new rule. ([#245], thanks [@singles])
97- Added an `optionalDependencies` option to [`no-extraneous-dependencies`] to allow/forbid optional dependencies ([#266], thanks [@jfmengels]).
98- Added `newlines-between` option to [`order`] rule ([#298], thanks [@singles])
99- add [`no-mutable-exports`] rule ([#290], thanks [@josh])
100- [`import/extensions` setting]: a list of file extensions to parse as modules
101 and search for `export`s. If unspecified, all extensions are considered valid (for now).
102 In v2, this will likely default to `['.js', MODULE_EXT]`. ([#297], to fix [#267])
103
104### Fixed
105- [`extensions`]: fallback to source path for extension enforcement if imported
106 module is not resolved. Also, never report for builtins (i.e. `path`). ([#296])
107
108## [1.6.1] - 2016-04-28
109### Fixed
110- [`no-named-as-default-member`]: don't crash on rest props. ([#281], thanks [@SimenB])
111- support for Node 6: don't pass `null` to `path` functions.
112 Thanks to [@strawbrary] for bringing this up ([#272]) and adding OSX support to the Travis
113 config ([#288]).
114
115## [1.6.0] - 2016-04-25
116### Added
117- add [`no-named-as-default-member`] to `warnings` canned config
118- add [`no-extraneous-dependencies`] rule ([#241], thanks [@jfmengels])
119- add [`extensions`] rule ([#250], thanks [@lo1tuma])
120- add [`no-nodejs-modules`] rule ([#261], thanks [@jfmengels])
121- add [`order`] rule ([#247], thanks [@jfmengels])
122- consider `resolve.fallback` config option in the webpack resolver ([#254])
123
124### Changed
125- [`imports-first`] now allows directives (i.e. `'use strict'`) strictly before
126 any imports ([#256], thanks [@lemonmade])
127
128### Fixed
129- [`named`] now properly ignores the source module if a name is re-exported from
130 an ignored file (i.e. `node_modules`). Also improved the reported error. (thanks to [@jimbolla] for reporting)
131- [`no-named-as-default-member`] had a crash on destructuring in loops (thanks for heads up from [@lemonmade])
132
133## [1.5.0] - 2016-04-18
134### Added
135- report resolver errors at the top of the linted file
136- add [`no-namespace`] rule ([#239], thanks [@singles])
137- add [`no-named-as-default-member`] rule ([#243], thanks [@dmnd])
138
139### Changed
140- Rearranged rule groups in README in preparation for more style guide rules
141
142## [1.4.0] - 2016-03-25
143### Added
144- Resolver plugin interface v2: more explicit response format that more clearly covers the found-but-core-module case, where there is no path.
145 Still backwards-compatible with the original version of the resolver spec.
146- [Resolver documentation](./resolvers/README.md)
147
148### Changed
149- using `package.json/files` instead of `.npmignore` for package file inclusion ([#228], thanks [@mathieudutour])
150- using `es6-*` ponyfills instead of `babel-runtime`
151
152## [1.3.0] - 2016-03-20
153Major perf improvements. Between parsing only once and ignoring gigantic, non-module `node_modules`,
154there is very little added time.
155
156My test project takes 17s to lint completely, down from 55s, when using the
157memoizing parser, and takes only 27s with naked `babel-eslint` (thus, reparsing local modules).
158
159### Added
160- This change log ([#216])
161- Experimental memoizing [parser](./memo-parser/README.md)
162
163### Fixed
164- Huge reduction in execution time by _only_ ignoring [`import/ignore` setting] if
165 something that looks like an `export` is detected in the module content.
166
167## [1.2.0] - 2016-03-19
168Thanks @lencioni for identifying a huge amount of rework in resolve and kicking
169off a bunch of memoization.
170
171I'm seeing 62% improvement over my normal test codebase when executing only
172[`no-unresolved`] in isolation, and ~35% total reduction in lint time.
173
174### Changed
175- added caching to core/resolve via [#214], configured via [`import/cache` setting]
176
177## [1.1.0] - 2016-03-15
178### Added
179- Added an [`ignore`](./docs/rules/no-unresolved.md#ignore) option to [`no-unresolved`] for those pesky files that no
180resolver can find. (still prefer enhancing the Webpack and Node resolvers to
181using it, though). See [#89] for details.
182
183## [1.0.4] - 2016-03-11
184### Changed
185- respect hoisting for deep namespaces ([`namespace`]/[`no-deprecated`]) ([#211])
186
187### Fixed
188- don't crash on self references ([#210])
189- correct cache behavior in `eslint_d` for deep namespaces ([#200])
190
191## [1.0.3] - 2016-02-26
192### Changed
193- no-deprecated follows deep namespaces ([#191])
194
195### Fixed
196- [`namespace`] no longer flags modules with only a default export as having no
197names. (ns.default is valid ES6)
198
199## [1.0.2] - 2016-02-26
200### Fixed
201- don't parse imports with no specifiers ([#192])
202
203## [1.0.1] - 2016-02-25
204### Fixed
205- export `stage-0` shared config
206- documented [`no-deprecated`]
207- deep namespaces are traversed regardless of how they get imported ([#189])
208
209## [1.0.0] - 2016-02-24
210### Added
211- [`no-deprecated`]: WIP rule to let you know at lint time if you're using
212deprecated functions, constants, classes, or modules.
213
214### Changed
215- [`namespace`]: support deep namespaces ([#119] via [#157])
216
217## [1.0.0-beta.0] - 2016-02-13
218### Changed
219- support for (only) ESLint 2.x
220- no longer needs/refers to `import/parser` or `import/parse-options`. Instead,
221ESLint provides the configured parser + options to the rules, and they use that
222to parse dependencies.
223
224### Removed
225- `babylon` as default import parser (see Breaking)
226
227## [0.13.0] - 2016-02-08
228### Added
229- [`no-commonjs`] rule
230- [`no-amd`] rule
231
232### Removed
233- Removed vestigial `no-require` rule. [`no-commonjs`] is more complete.
234
235## [0.12.2] - 2016-02-06 [YANKED]
236Unpublished from npm and re-released as 0.13.0. See [#170].
237
238## [0.12.1] - 2015-12-17
239### Changed
240- Broke docs for rules out into individual files.
241
242## [0.12.0] - 2015-12-14
243### Changed
244- Ignore [`import/ignore` setting] if exports are actually found in the parsed module. Does
245this to support use of `jsnext:main` in `node_modules` without the pain of
246managing an allow list or a nuanced deny list.
247
248## [0.11.0] - 2015-11-27
249### Added
250- Resolver plugins. Now the linter can read Webpack config, properly follow
251aliases and ignore externals, dismisses inline loaders, etc. etc.!
252
253## Earlier releases (0.10.1 and younger)
254See [GitHub release notes](https://github.com/benmosher/eslint-plugin-import/releases?after=v0.11.0)
255for info on changes for earlier releases.
256
257
258[`import/cache` setting]: ./README.md#importcache
259[`import/ignore` setting]: ./README.md#importignore
260[`import/extensions` setting]: ./README.md#importextensions
261[`import/core-modules` setting]: ./README.md#importcore-modules
262[`import/external-module-folders` setting]: ./README.md#importexternal-module-folders
263
264[`no-unresolved`]: ./docs/rules/no-unresolved.md
265[`no-deprecated`]: ./docs/rules/no-deprecated.md
266[`no-commonjs`]: ./docs/rules/no-commonjs.md
267[`no-amd`]: ./docs/rules/no-amd.md
268[`namespace`]: ./docs/rules/namespace.md
269[`no-namespace`]: ./docs/rules/no-namespace.md
270[`no-named-as-default-member`]: ./docs/rules/no-named-as-default-member.md
271[`no-extraneous-dependencies`]: ./docs/rules/no-extraneous-dependencies.md
272[`extensions`]: ./docs/rules/extensions.md
273[`imports-first`]: ./docs/rules/imports-first.md
274[`no-nodejs-modules`]: ./docs/rules/no-nodejs-modules.md
275[`order`]: ./docs/rules/order.md
276[`named`]: ./docs/rules/named.md
277[`default`]: ./docs/rules/default.md
278[`export`]: ./docs/rules/export.md
279[`newline-after-import`]: ./docs/rules/newline-after-import.md
280[`no-mutable-exports`]: ./docs/rules/no-mutable-exports.md
281[`prefer-default-export`]: ./docs/rules/prefer-default-export.md
282[`no-restricted-paths`]: ./docs/rules/no-restricted-paths.md
283
284[#461]: https://github.com/benmosher/eslint-plugin-import/pull/461
285[#444]: https://github.com/benmosher/eslint-plugin-import/pull/444
286[#428]: https://github.com/benmosher/eslint-plugin-import/pull/428
287[#395]: https://github.com/benmosher/eslint-plugin-import/pull/395
288[#371]: https://github.com/benmosher/eslint-plugin-import/pull/371
289[#365]: https://github.com/benmosher/eslint-plugin-import/pull/365
290[#359]: https://github.com/benmosher/eslint-plugin-import/pull/359
291[#343]: https://github.com/benmosher/eslint-plugin-import/pull/343
292[#332]: https://github.com/benmosher/eslint-plugin-import/pull/332
293[#322]: https://github.com/benmosher/eslint-plugin-import/pull/322
294[#321]: https://github.com/benmosher/eslint-plugin-import/pull/321
295[#316]: https://github.com/benmosher/eslint-plugin-import/pull/316
296[#308]: https://github.com/benmosher/eslint-plugin-import/pull/308
297[#298]: https://github.com/benmosher/eslint-plugin-import/pull/298
298[#297]: https://github.com/benmosher/eslint-plugin-import/pull/297
299[#296]: https://github.com/benmosher/eslint-plugin-import/pull/296
300[#290]: https://github.com/benmosher/eslint-plugin-import/pull/290
301[#289]: https://github.com/benmosher/eslint-plugin-import/pull/289
302[#288]: https://github.com/benmosher/eslint-plugin-import/pull/288
303[#287]: https://github.com/benmosher/eslint-plugin-import/pull/287
304[#278]: https://github.com/benmosher/eslint-plugin-import/pull/278
305[#261]: https://github.com/benmosher/eslint-plugin-import/pull/261
306[#256]: https://github.com/benmosher/eslint-plugin-import/pull/256
307[#254]: https://github.com/benmosher/eslint-plugin-import/pull/254
308[#250]: https://github.com/benmosher/eslint-plugin-import/pull/250
309[#247]: https://github.com/benmosher/eslint-plugin-import/pull/247
310[#245]: https://github.com/benmosher/eslint-plugin-import/pull/245
311[#243]: https://github.com/benmosher/eslint-plugin-import/pull/243
312[#241]: https://github.com/benmosher/eslint-plugin-import/pull/241
313[#239]: https://github.com/benmosher/eslint-plugin-import/pull/239
314[#228]: https://github.com/benmosher/eslint-plugin-import/pull/228
315[#211]: https://github.com/benmosher/eslint-plugin-import/pull/211
316[#164]: https://github.com/benmosher/eslint-plugin-import/pull/164
317[#157]: https://github.com/benmosher/eslint-plugin-import/pull/157
318[#314]: https://github.com/benmosher/eslint-plugin-import/pull/314
319
320[#478]: https://github.com/benmosher/eslint-plugin-import/issues/478
321[#456]: https://github.com/benmosher/eslint-plugin-import/issues/456
322[#453]: https://github.com/benmosher/eslint-plugin-import/issues/453
323[#441]: https://github.com/benmosher/eslint-plugin-import/issues/441
324[#423]: https://github.com/benmosher/eslint-plugin-import/issues/423
325[#415]: https://github.com/benmosher/eslint-plugin-import/issues/415
326[#386]: https://github.com/benmosher/eslint-plugin-import/issues/386
327[#373]: https://github.com/benmosher/eslint-plugin-import/issues/373
328[#370]: https://github.com/benmosher/eslint-plugin-import/issues/370
329[#348]: https://github.com/benmosher/eslint-plugin-import/issues/348
330[#342]: https://github.com/benmosher/eslint-plugin-import/issues/342
331[#328]: https://github.com/benmosher/eslint-plugin-import/issues/328
332[#317]: https://github.com/benmosher/eslint-plugin-import/issues/317
333[#313]: https://github.com/benmosher/eslint-plugin-import/issues/313
334[#286]: https://github.com/benmosher/eslint-plugin-import/issues/286
335[#283]: https://github.com/benmosher/eslint-plugin-import/issues/283
336[#281]: https://github.com/benmosher/eslint-plugin-import/issues/281
337[#275]: https://github.com/benmosher/eslint-plugin-import/issues/275
338[#272]: https://github.com/benmosher/eslint-plugin-import/issues/272
339[#267]: https://github.com/benmosher/eslint-plugin-import/issues/267
340[#266]: https://github.com/benmosher/eslint-plugin-import/issues/266
341[#216]: https://github.com/benmosher/eslint-plugin-import/issues/216
342[#214]: https://github.com/benmosher/eslint-plugin-import/issues/214
343[#210]: https://github.com/benmosher/eslint-plugin-import/issues/210
344[#200]: https://github.com/benmosher/eslint-plugin-import/issues/200
345[#192]: https://github.com/benmosher/eslint-plugin-import/issues/192
346[#191]: https://github.com/benmosher/eslint-plugin-import/issues/191
347[#189]: https://github.com/benmosher/eslint-plugin-import/issues/189
348[#170]: https://github.com/benmosher/eslint-plugin-import/issues/170
349[#155]: https://github.com/benmosher/eslint-plugin-import/issues/155
350[#119]: https://github.com/benmosher/eslint-plugin-import/issues/119
351[#89]: https://github.com/benmosher/eslint-plugin-import/issues/89
352
353[Unreleased]: https://github.com/benmosher/eslint-plugin-import/compare/v1.13.0...HEAD
354[1.13.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.12.0...v1.13.0
355[1.12.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.11.1...v1.12.0
356[1.11.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.11.0...v1.11.1
357[1.11.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.10.3...v1.11.0
358[1.10.3]: https://github.com/benmosher/eslint-plugin-import/compare/v1.10.2...v1.10.3
359[1.10.2]: https://github.com/benmosher/eslint-plugin-import/compare/v1.10.1...v1.10.2
360[1.10.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.10.0...v1.10.1
361[1.10.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.9.2...v1.10.0
362[1.9.2]: https://github.com/benmosher/eslint-plugin-import/compare/v1.9.1...v1.9.2
363[1.9.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.9.0...v1.9.1
364[1.9.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.8.1...v1.9.0
365[1.8.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.8.0...v1.8.1
366[1.8.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.7.0...v1.8.0
367[1.7.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.6.1...v1.7.0
368[1.6.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.6.0...v1.6.1
369[1.6.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.5.0...1.6.0
370[1.5.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.4.0...v1.5.0
371[1.4.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.3.0...v1.4.0
372[1.3.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.2.0...v1.3.0
373[1.2.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.1.0...v1.2.0
374[1.1.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.0.4...v1.1.0
375[1.0.4]: https://github.com/benmosher/eslint-plugin-import/compare/v1.0.3...v1.0.4
376[1.0.3]: https://github.com/benmosher/eslint-plugin-import/compare/v1.0.2...v1.0.3
377[1.0.2]: https://github.com/benmosher/eslint-plugin-import/compare/v1.0.1...v1.0.2
378[1.0.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.0.0...v1.0.1
379[1.0.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.0.0-beta.0...v1.0.0
380[1.0.0-beta.0]: https://github.com/benmosher/eslint-plugin-import/compare/v0.13.0...v1.0.0-beta.0
381[0.13.0]: https://github.com/benmosher/eslint-plugin-import/compare/v0.12.1...v0.13.0
382[0.12.2]: https://github.com/benmosher/eslint-plugin-import/compare/v0.12.1...v0.12.2
383[0.12.1]: https://github.com/benmosher/eslint-plugin-import/compare/v0.12.0...v0.12.1
384[0.12.0]: https://github.com/benmosher/eslint-plugin-import/compare/v0.11.0...v0.12.0
385[0.11.0]: https://github.com/benmosher/eslint-plugin-import/compare/v0.10.1...v0.11.0
386
387[@mathieudutour]: https://github.com/mathieudutour
388[@gausie]: https://github.com/gausie
389[@singles]: https://github.com/singles
390[@jfmengels]: https://github.com/jfmengels
391[@lo1tuma]: https://github.com/lo1tuma
392[@dmnd]: https://github.com/dmnd
393[@lemonmade]: https://github.com/lemonmade
394[@jimbolla]: https://github.com/jimbolla
395[@jquense]: https://github.com/jquense
396[@jonboiser]: https://github.com/jonboiser
397[@taion]: https://github.com/taion
398[@strawbrary]: https://github.com/strawbrary
399[@SimenB]: https://github.com/SimenB
400[@josh]: https://github.com/josh
401[@borisyankov]: https://github.com/borisyankov
402[@gavriguy]: https://github.com/gavriguy
403[@jkimbo]: https://github.com/jkimbo
404[@le0nik]: https://github.com/le0nik
405[@scottnonnenberg]: https://github.com/scottnonnenberg
406[@sindresorhus]: https://github.com/sindresorhus
407[@ljharb]: https://github.com/ljharb
408[@rhettlivingston]: https://github.com/rhettlivingston
409[@zloirock]: https://github.com/zloirock
410[@rhys-vdw]: https://github.com/rhys-vdw