Standard v16.0.0 Release Notes
Release Date: 2020-10-28 // over 3 years ago-
We'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