From 8b0bd6ac6fa2fae78604f91e595a6505bd647b9e Mon Sep 17 00:00:00 2001 From: Liang Mi Date: Thu, 25 Jun 2026 11:26:34 +0800 Subject: [PATCH 1/7] docs: fix `overrides` behavior mismatch --- docs/guide/monorepo.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/guide/monorepo.md b/docs/guide/monorepo.md index def5b9aa08..d3224478b6 100644 --- a/docs/guide/monorepo.md +++ b/docs/guide/monorepo.md @@ -24,7 +24,7 @@ export default defineConfig({ overrides: [ { files: ['apps/web/**', 'packages/ui/**'], - plugins: ['typescript', 'react'], + plugins: ['react'], rules: { 'react/self-closing-comp': 'error', }, @@ -40,7 +40,7 @@ export default defineConfig({ }, { files: ['**/*.test.ts', '**/*.spec.ts'], - plugins: ['typescript', 'vitest'], + plugins: ['vitest'], rules: { '@typescript-eslint/no-explicit-any': 'off', 'vitest/no-disabled-tests': 'error', @@ -54,7 +54,7 @@ export default defineConfig({ Globs are resolved from the root `vite.config.ts`, so use workspace paths such as `apps/web/**`, `apps/api/**`, and `packages/ui/**`. ::: tip -When a `lint.overrides` entry sets `plugins`, that list replaces the base `lint.plugins` list for matched files. Include every plugin needed by that file group, such as `['typescript', 'react']`. Omit `plugins` only when the override should inherit the base list unchanged. +When a `lint.overrides` entry sets `plugins`, that list will be merged with the base `lint.plugins` list for matched files. Omit `plugins` only when the override should inherit the base list unchanged. ::: ## Format Overrides From 8c313f149272f97b11a060b80dbd0095f9a9d37b Mon Sep 17 00:00:00 2001 From: Liang Mi Date: Thu, 25 Jun 2026 11:38:34 +0800 Subject: [PATCH 2/7] wip --- docs/guide/monorepo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/monorepo.md b/docs/guide/monorepo.md index d3224478b6..f1a898c2ef 100644 --- a/docs/guide/monorepo.md +++ b/docs/guide/monorepo.md @@ -42,7 +42,7 @@ export default defineConfig({ files: ['**/*.test.ts', '**/*.spec.ts'], plugins: ['vitest'], rules: { - '@typescript-eslint/no-explicit-any': 'off', + 'typescript/no-explicit-any': 'off', 'vitest/no-disabled-tests': 'error', }, }, From 16e1cdfaae129edeb12052360c35e08072f0eb62 Mon Sep 17 00:00:00 2001 From: Liang Mi Date: Thu, 25 Jun 2026 11:47:43 +0800 Subject: [PATCH 3/7] snap tests --- .../package.json | 6 ++++ .../lint-extend-override-semantic/snap.txt | 36 +++++++++++++++++++ .../src/example.js | 1 + .../src/example.vue | 9 +++++ .../lint-extend-override-semantic/steps.json | 3 ++ .../vite.config.ts | 17 +++++++++ 6 files changed, 72 insertions(+) create mode 100644 packages/cli/snap-tests/lint-extend-override-semantic/package.json create mode 100644 packages/cli/snap-tests/lint-extend-override-semantic/snap.txt create mode 100644 packages/cli/snap-tests/lint-extend-override-semantic/src/example.js create mode 100644 packages/cli/snap-tests/lint-extend-override-semantic/src/example.vue create mode 100644 packages/cli/snap-tests/lint-extend-override-semantic/steps.json create mode 100644 packages/cli/snap-tests/lint-extend-override-semantic/vite.config.ts diff --git a/packages/cli/snap-tests/lint-extend-override-semantic/package.json b/packages/cli/snap-tests/lint-extend-override-semantic/package.json new file mode 100644 index 0000000000..a07247c039 --- /dev/null +++ b/packages/cli/snap-tests/lint-extend-override-semantic/package.json @@ -0,0 +1,6 @@ +{ + "name": "lint-extend-override-semantic", + "version": "1.0.0", + "private": true, + "type": "module" +} diff --git a/packages/cli/snap-tests/lint-extend-override-semantic/snap.txt b/packages/cli/snap-tests/lint-extend-override-semantic/snap.txt new file mode 100644 index 0000000000..cd4088ddcc --- /dev/null +++ b/packages/cli/snap-tests/lint-extend-override-semantic/snap.txt @@ -0,0 +1,36 @@ +[1]> vp lint src # extends rules are preserved when a file override adds Vue rules + + × eslint(no-console): Unexpected console statement. + ╭─[src/example.js:1:1] + 1 │ console.log(); + · ─────────── + ╰──── + help: Delete this console statement. + + × vue(no-export-in-script-setup): + ╰──── + + × vue(no-export-in-script-setup): + ╰──── + + × eslint(no-console): Unexpected console statement. + ╭─[src/example.vue:6:1] + 5 │ diff --git a/packages/cli/snap-tests/lint-extend-override-semantic/steps.json b/packages/cli/snap-tests/lint-extend-override-semantic/steps.json new file mode 100644 index 0000000000..9205836c39 --- /dev/null +++ b/packages/cli/snap-tests/lint-extend-override-semantic/steps.json @@ -0,0 +1,3 @@ +{ + "commands": ["vp lint src # extends rules are preserved when a file override adds Vue rules"] +} diff --git a/packages/cli/snap-tests/lint-extend-override-semantic/vite.config.ts b/packages/cli/snap-tests/lint-extend-override-semantic/vite.config.ts new file mode 100644 index 0000000000..cc466cb3c4 --- /dev/null +++ b/packages/cli/snap-tests/lint-extend-override-semantic/vite.config.ts @@ -0,0 +1,17 @@ +import { defineConfig } from 'vite-plus'; + +export default defineConfig({ + lint: { + rules: { 'no-console': 'error' }, + plugins: ['unicorn', 'eslint'], + overrides: [ + { + files: ['**/*.vue'], + plugins: ['vue'], + rules: { + 'vue/no-export-in-script-setup': 'error', + }, + }, + ], + }, +}); From affcdb74ea30da68e5dd64787c9dd0f385a07cb6 Mon Sep 17 00:00:00 2001 From: Liang Mi Date: Thu, 25 Jun 2026 11:52:22 +0800 Subject: [PATCH 4/7] rename --- .../package.json | 0 .../snap.txt | 0 .../src/example.js | 0 .../src/example.vue | 0 .../steps.json | 0 .../vite.config.ts | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename packages/cli/snap-tests/{lint-extend-override-semantic => lint-override-semantic}/package.json (100%) rename packages/cli/snap-tests/{lint-extend-override-semantic => lint-override-semantic}/snap.txt (100%) rename packages/cli/snap-tests/{lint-extend-override-semantic => lint-override-semantic}/src/example.js (100%) rename packages/cli/snap-tests/{lint-extend-override-semantic => lint-override-semantic}/src/example.vue (100%) rename packages/cli/snap-tests/{lint-extend-override-semantic => lint-override-semantic}/steps.json (100%) rename packages/cli/snap-tests/{lint-extend-override-semantic => lint-override-semantic}/vite.config.ts (100%) diff --git a/packages/cli/snap-tests/lint-extend-override-semantic/package.json b/packages/cli/snap-tests/lint-override-semantic/package.json similarity index 100% rename from packages/cli/snap-tests/lint-extend-override-semantic/package.json rename to packages/cli/snap-tests/lint-override-semantic/package.json diff --git a/packages/cli/snap-tests/lint-extend-override-semantic/snap.txt b/packages/cli/snap-tests/lint-override-semantic/snap.txt similarity index 100% rename from packages/cli/snap-tests/lint-extend-override-semantic/snap.txt rename to packages/cli/snap-tests/lint-override-semantic/snap.txt diff --git a/packages/cli/snap-tests/lint-extend-override-semantic/src/example.js b/packages/cli/snap-tests/lint-override-semantic/src/example.js similarity index 100% rename from packages/cli/snap-tests/lint-extend-override-semantic/src/example.js rename to packages/cli/snap-tests/lint-override-semantic/src/example.js diff --git a/packages/cli/snap-tests/lint-extend-override-semantic/src/example.vue b/packages/cli/snap-tests/lint-override-semantic/src/example.vue similarity index 100% rename from packages/cli/snap-tests/lint-extend-override-semantic/src/example.vue rename to packages/cli/snap-tests/lint-override-semantic/src/example.vue diff --git a/packages/cli/snap-tests/lint-extend-override-semantic/steps.json b/packages/cli/snap-tests/lint-override-semantic/steps.json similarity index 100% rename from packages/cli/snap-tests/lint-extend-override-semantic/steps.json rename to packages/cli/snap-tests/lint-override-semantic/steps.json diff --git a/packages/cli/snap-tests/lint-extend-override-semantic/vite.config.ts b/packages/cli/snap-tests/lint-override-semantic/vite.config.ts similarity index 100% rename from packages/cli/snap-tests/lint-extend-override-semantic/vite.config.ts rename to packages/cli/snap-tests/lint-override-semantic/vite.config.ts From 0cdb72f74f3bfca481731ca20517856c2f4cb9f0 Mon Sep 17 00:00:00 2001 From: Liang Mi Date: Thu, 25 Jun 2026 11:52:43 +0800 Subject: [PATCH 5/7] rename --- packages/cli/snap-tests/lint-override-semantic/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/snap-tests/lint-override-semantic/package.json b/packages/cli/snap-tests/lint-override-semantic/package.json index a07247c039..769d8eb1d2 100644 --- a/packages/cli/snap-tests/lint-override-semantic/package.json +++ b/packages/cli/snap-tests/lint-override-semantic/package.json @@ -1,5 +1,5 @@ { - "name": "lint-extend-override-semantic", + "name": "lint-override-semantic", "version": "1.0.0", "private": true, "type": "module" From ac735192c390f67b2b03ebd1737105fc21bcc934 Mon Sep 17 00:00:00 2001 From: Liang Mi Date: Thu, 25 Jun 2026 11:53:08 +0800 Subject: [PATCH 6/7] change --- .../cli/snap-tests/lint-override-semantic/snap.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/cli/snap-tests/lint-override-semantic/snap.txt b/packages/cli/snap-tests/lint-override-semantic/snap.txt index cd4088ddcc..2d5343b2fe 100644 --- a/packages/cli/snap-tests/lint-override-semantic/snap.txt +++ b/packages/cli/snap-tests/lint-override-semantic/snap.txt @@ -1,12 +1,5 @@ [1]> vp lint src # extends rules are preserved when a file override adds Vue rules - × eslint(no-console): Unexpected console statement. - ╭─[src/example.js:1:1] - 1 │ console.log(); - · ─────────── - ╰──── - help: Delete this console statement. - × vue(no-export-in-script-setup):