Skip to content

Upgrade Guide

Migrating to v6

This guide covers the confirmed breaking changes between v5.10.0 and the v6.

Node.js Version

Minimum supported Node.js version is now ^20.19.0 || ^22.13.0 || >=24.

Removed Rules

These previously deprecated rules have been removed:

RuleMigration
jsx-indentUse indent
jsx-props-no-multi-spacesUse no-multi-spaces
jsx-sort-propsUse eslint-plugin-perfectionist's sort-jsx-props

Removed Deprecated Options

The following deprecated options or shorthands are no longer supported:

RuleRemoved Option / SyntaxMigration
indentoffsetTernaryExpressionsOffsetCallExpressionsUse offsetTernaryExpressions.CallExpression and offsetTernaryExpressions.AwaitExpression
quotes'avoid-escape' shorthandUse the object form instead, for example ['error', 'single', { avoidEscape: true }]
quotesallowTemplateLiterals: true/falseUse allowTemplateLiterals: 'always' or allowTemplateLiterals: 'never'
type-annotation-spacingoverrides.arrowUse arrow-spacing to control spacing around =>
line-comment-positionapplyDefaultPatternsUse applyDefaultIgnorePatterns
eol-last'unix' / 'windows'Use 'always', and combine with linebreak-style if you need a specific line ending
no-mixed-spaces-and-tabsboolean shorthand (true)Use ['error', 'smart-tabs']

Behavior Changes

type-generic-spacing / space-infix-ops

Spacing around default values in type parameters is no longer handled by type-generic-spacing.

If you want to enforce type Foo<T = true> = T instead of type Foo<T=true> = T, make sure space-infix-ops is enabled.

keyword-spacing / space-before-blocks

The space before a class body's { is no longer handled by keyword-spacing.

If you previously relied on keyword-spacing to enforce class Foo {} vs class Foo{}, move that configuration to space-before-blocks.

no-multi-spaces

The default value of exceptions is now {}.

In v5, Property and ImportAttribute were ignored by default. If you rely on aligned object properties, for example with key-spacing, or on aligned import attributes, add them explicitly:

json
{
  "@stylistic/no-multi-spaces": [
    "error",
    {
      "exceptions": {
        "Property": true,
        "ImportAttribute": true
      }
    }
  ]
}

Released under the MIT License.