Changelog History
Page 1
-
v17.0.0 Changes
April 20, 2022We're super excited to announce
standard
17!๐ This major release fully focuses on getting in sync with the wider ESLint ecosystem and doesn't in itself introduce any new rules or features.
โฌ๏ธ When you upgrade, consider running
standard --fix
to automatically format your code to match the current set of rules.๐ This is the first release by two of our
standard
co-maintainers @Divlo and @voxpelli. Buy them a cake if you run into them, thanks for getting this release out!Major changes
- ๐
eslint-config-node
has been replaced with the up to date forkeslint-config-n
. If you have used comments like// eslint-disable-line node/no-deprecated-api
you now have to reference then/
rules instead. - ๐
object-shorthand
rule (as warning) - ๐ Use of ESLint 8, which allows for support for all of the latest syntax that ESLint 8 includes, such as top level
await
#1548 #1775 - 0๏ธโฃ
--verbose
by default
๐ Changed features
- โก๏ธ Update
eslint
from~7.18.0
to^8.13.0
- โก๏ธ Update
eslint-config-standard
from16.0.3
to17.0.0
to adapt to ESLint 8 - โก๏ธ Update
eslint-config-standard-jsx
from10.0.0
to^11.0.0
to adapt to ESLint 8 - โก๏ธ Update
standard-engine
from^14
to^15.0.0
to adapt to ESLint 8, see itsCHANGELOG
- ๐ Move from
eslint-plugin-node@~11.1.0
toeslint-plugin-n@^15.1.0
to adapt to ESLint 8 - โก๏ธ Update
eslint-plugin-import
from~2.24.2
to^2.26.0
- โก๏ธ Update
eslint-plugin-promise
from~5.1.0
to^6.0.0
- โก๏ธ Update
eslint-plugin-react
from~7.25.1
to^7.28.0
- ๐
-
v17.0.0-2 Changes
February 03, 2022- ๐ Fix: Follow up to the fix of #1548 in
17.0.0-1
#1775
- ๐ Fix: Follow up to the fix of #1548 in
-
v17.0.0-1 Changes
January 31, 2022- ๐ Fix: Ensure we support all of the latest syntax that ESLint 8 includes, such as top level
await
#1548
- ๐ Fix: Ensure we support all of the latest syntax that ESLint 8 includes, such as top level
-
v17.0.0-0 Changes
January 31, 2022๐ We're finally able to offer a pre-release of ESLint 8 based
standard
17!๐ This major release fully focuses on getting in sync with the wider ESLint ecosystem and doesn't in itself introduce any new rules or features.
๐ This pre-release exists to test out the ESLint 8 related changes and discover possible backwards incompatible changes that comes with it and mitigate ๐ unintended such before a stable release.
โฌ๏ธ When you upgrade, consider running
standard --fix
to automatically format your code to match the current set of rules.๐ Changed features
- โก๏ธ Update
eslint
from~7.18.0
to^8.8.0
- โก๏ธ Update
eslint-config-standard
from16.0.3
to17.0.0-0
to adapt to ESLint 8 - โก๏ธ Update
eslint-config-standard-jsx
from10.0.0
to11.0.0-0
to adapt to ESLint 8 - โก๏ธ Update
standard-engine
from^14
to^15.0.0-0
to adapt to ESLint 8, see itsCHANGELOG
- โก๏ธ Update
-
v16.0.4 Changes
October 03, 2021- โก๏ธ Update
eslint
from~7.13.1
to~7.18.0
- โก๏ธ Update
eslint-config-standard
from16.0.2
to16.0.3
- โก๏ธ Update
eslint-plugin-import
from~2.22.1
to~2.24.2
- โก๏ธ Update
eslint-plugin-promise
from~4.2.1
to~5.1.0
- โก๏ธ Update
eslint-plugin-react
from~7.21.5
to~7.25.1
- โก๏ธ Update
-
v16.0.3 Changes
November 17, 2020- โก๏ธ Update
eslint
from~7.12.1
to~7.13.0
- 0๏ธโฃ Relax rule: Enforce default parameters to be last #1414
- โก๏ธ Update
-
v16.0.2 Changes
November 11, 2020- ๐ Allow
standard
to run on Node 11, even though it's not officially supported #1597
- ๐ Allow
-
v16.0.1 Changes
October 30, 2020- โ Introduce "warning" system for disruptive rules (read more below)
- ๐ Change rule to a "warning": Require let or const instead of var (no-var) #633
standard
treats all rule violations as errors, which means thatstandard
will exit with a non-zero (error) exit code.๐ However, we may occasionally release a new major version of
standard
which changes a rule that affects the majority ofstandard
users (for example, transitioning fromvar
tolet
/const
). We do this only when we think the advantage is worth the cost and only when the rule is auto-fixable.In these situations, we have a "transition period" where the rule change is only โ a "warning". Warnings don't cause
standard
to return a non-zero (error) โ exit code. However, a warning message will still print to the console. During โก๏ธ the transition period,using standard --fix
will update your code so that it's ready for the next major version.The slow and careful approach is what we strive for with
standard
. We're generally extremely conservative in enforcing the usage of new language ๐ features. We want usingstandard
to be light and fun and so we're careful about making changes that may get in your way. As always, you can disable a rule at any time, if necessary. -
v16.0.0 Changes
October 28, 2020We're super excited to announce
standard
16!๐ As with every new major release, there are lots of new rules in 16.0.0 designed ๐ to help catch bugs and make programmer intent more explicit. This release brings ๐ better performance, tons of bug fixes, improved JSX, React โ๏ธ, and Next.js support!
โฌ๏ธ When you upgrade, consider running
standard --fix
to automatically format your code to match the newly added rules.๐ โค๏ธ If you enjoy StandardJS and want to support future releases, please ๐ support Feross!
๐ New features
๐ ๐ Better performance: the filesystem doesn't need to be traversed multiple times! #1023
- Massive improvements (on the order of minutes!) for projects with huge folders which are are ignored with
.gitignore
- Massive improvements (on the order of minutes!) for projects with huge folders which are are ignored with
๐ ๐ Support the
.gitignore
ignore syntax from the command line #1117- In older versions, the command
standard src
would not lint thesrc/
folder - Instead, a glob pattern like
standard src/**/*.js
was required - This is now fixed! You can run
standard src
to lint thesrc/
folder!
- In older versions, the command
๐ ๐ Support relative paths from the command line in more situations (e.g.
standard ../src/*.js
) #1384๐ ๐ New
extensions
option for linting additional extensions besides.js
,.jsx
,.mjs
, and.cjs
- Can be configured with the
--ext
command line flag or inpackage.json
: - Example:
standard --ext .ts
{ "standard": { "extensions": [".ts"] } }
- Can be configured with the
๐ New cache directory location, respecting
XDG_CACHE_HOME
preference, with fallback to~/.cache/standard
standard-engine/#214
๐ Changed features
โก๏ธ Update
eslint
from~7.11.0
to~7.12.1
โก๏ธ Update
standard-engine
from^12
to^14
- Fix inaccurate
--help
command which indicates thatbundle.js
is automatically ignored when it is not anymore standard-engine/#224 - Remove
deglob
package and use built-in ESLint folder-traversal support
- Fix inaccurate
Paths with square brackets (e.g.
[
and]
) are no longer skipped #1333- This pattern is particularly common in Next.js apps, e.g.
blog/[slug].js
- You may notice new errors in these files since they were not being linted before
- This pattern is particularly common in Next.js apps, e.g.
๐ Better mono-repo support: Nested
node_modules/
folders are ignored by default #1182โ Remove
eslint-plugin-standard
#1316- We migrated the remaining
no-callback-literal
rule intoeslint-plugin-node
- We migrated the remaining
๐ New rules
โ (Estimated % of affected standard users, based on test suite in parens)
- ๐ Require let or const instead of var (no-var) #633 [75%] [automatic fixing reduces to 11%]
- ๐ Enforce return statements in
Array
method callbacks (array-callback-return) #859 [7%] - ๐ Disallow empty block statements (no-empty) #796 [2%]
- ๐ Enforce default parameters to be last (default-param-last) #1414 [1%]
- ๐ Disallow use of the
RegExp
constructor in favor of regular expression literals (prefer-regex-literals) #1413 [1%] - ๐ Disallow spaces inside of computed keys of class methods, getters and setters (computed-property-spacing) #1416 [0%]
- ๐ Disallow
case NaN
,switch(NaN)
,indexOf(NaN)
, andlastIndexOf(NaN)
(use-isnan) #1429 [0%] - ๐ Disallow assigning to imported bindings (no-import-assign) #1412 [0%]
๐ Enforce getter/setter pairs in classes (accessor-pairs) #1415 [0%]
๐ Node: Disallow assignment to
exports
(node/no-exports-assign) #1400 [0%]๐ React: Prevent usage of the return value of
ReactDOM.render
(react/no-render-return-value) #1568 [1%]๐ React: Prevent usage of deprecated methods (react/no-deprecated) #1572 [1%]
๐ React: Prevent direct mutation of
this.state
(react/no-direct-mutation-state) #1571 [0%]๐ React: Prevent usage of
findDOMNode
(react/no-find-dom-node) #1570 [0%]๐ React: Prevent usage of
isMounted
(react/no-is-mounted) #1569 [0%]๐ React: Prevent using string refs (react/no-string-refs) #1567 [0%]
๐ JSX: Prevent missing parentheses around multiline JSX (react/jsx-wrap-multilines) #710 #1382 (0%)
๐ JSX: Check if shorthand fragment syntax requires a key prop (react/jsx-key) #1575 [0%]
๐ JSX: Prevent passing of children as props (react/no-children-prop) #1574 [0%]
๐ JSX: Prevent using children and dangerouslySetInnerHTML as props at the same time (react/no-danger-with-children) #1573 [0%]
๐ JSX: Prevent invalid characters from appearing in markup (react/no-unescaped-entities) #1566 [0%]
๐ JSX: Enforce JSX value is returned in component render function (react/require-render-return) #1565 [0%]
๐ JSX: Prevent usage of unsafe
target='_blank'
on any component namedLink
(react/jsx-no-target-blank) #1576 [0%]
๐ Changed rules
-
v15.0.1 Changes
October 27, 2020- ๐ Relax rule: Remove conflicting JSX indenting with
indent
rule eslint-config-standard/#177
- ๐ Relax rule: Remove conflicting JSX indenting with