You can not use both eslint-plugin-svelte3
and eslint-plugin-svelte
at same time.
So before start to use this plugin, you need to remove eslint-plugin-svelte3
's stuff from both package.json
and .eslintrc.*
.
Note: If you want to know difference between
eslint-plugin-svelte
andeslint-plugin-svelte3
, Please read the reason for deprecatingeslint-plugin-svelte3
in eslint-plugin-svelte3 README.
Note: If you're using TypeScript, maybe you get
Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser.
error at some configuration files.
In this case, please refer this GitHub comment to solve it.
eslint-plugin-svelte
v1 was an alias for eslint-plugin-svelte3, but eslint-plugin-svelte
v2 is now an independent eslint-plugin.
If you want the previous behavior, replace it with eslint-plugin-svelte3.
@ota-meshi/eslint-plugin-svelte
has been renamed to eslint-plugin-svelte
.
Therefore, you need to replace the package name, and the presets, rules, and settings specified in the configuration.
-
package.json
Replace the package name.- "@ota-meshi/eslint-plugin-svelte": "^0.X.X" + "eslint-plugin-svelte": "^X.X.X"
-
.eslintrc.*
Replace@ota-meshi/svelte
withsvelte
as a string.
Examples:-
Presets
"extends": [ - "plugin:@ota-meshi/svelte/recommended" + "plugin:svelte/recommended" ],
-
Rules
"rules": { - "@ota-meshi/svelte/no-dupe-else-if-blocks": "error", + "svelte/no-dupe-else-if-blocks": "error", - "@ota-meshi/svelte/button-has-type": "error", + "svelte/button-has-type": "error", },
-
settings
"settings": { - "@ota-meshi/svelte": { ... } + "svelte": { ... } },
-
This section explains the necessary changes when upgrading from eslint-plugin-svelte
v2 to v3.
v3 includes support for ESLint Flat Config only, changes to the recommended rule set, and other breaking changes.
v3 requires one of the following Node.js versions:
^18.20.4
^20.18.0
>=22.10.0
.eslintrc.js
and.eslintrc.json
are no longer supported.- You must use Flat Config (
eslint.config.js
). - See README for more details.
- v3 requires ESLint 8.57.1 or later (including v9.x).
- The following rules are now included in
recommended
:svelte/infinite-reactive-loop
svelte/no-dom-manipulating
svelte/no-dupe-on-directives
svelte/no-reactive-reassign
svelte/require-event-dispatcher-types
- Many others (See Changelog for more details)
svelte/valid-compile
has been removed fromrecommended
.
svelte/no-dynamic-slot-name
is deprecated.svelte/no-goto-without-base
is deprecated and replaced withsvelte/no-navigation-without-base
.
- Rules such as
no-not-function-handler
andvalid-prop-names-in-kit-pages
now support Svelte 5.
consistent-selector-style
: Enforce consistent selector styles.no-useless-children-snippet
: Prevent unnecessary{@children}
usage.prefer-const
: Preferconst
overlet
.no-navigation-without-base
: Ensure proper usage ofgoto()
.
npm install eslint-plugin-svelte@3
node -v
- Ensure it is
v18.20.4
or later.
npx eslint -v
- Ensure it is
8.57.1
or later (or9.x
).
- Remove
.eslintrc.js
and migrate toeslint.config.js
.
- If using
recommended
, check the impact of newly added rules.
- Replace
no-goto-without-base
withno-navigation-without-base
.