File tree Expand file tree Collapse file tree
snap-tests-global/migration-vitest-peer-dep Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -304,6 +304,10 @@ jobs:
304304 command : |
305305 npx playwright install chromium
306306 vp test
307+ - name : vite-plus-vitest-type-aug
308+ node-version : 24
309+ command : |
310+ vp check --fix
307311 exclude :
308312 # frm-stack uses Docker (testcontainers) which doesn't work the same way on Windows
309313 - os : windows-latest
Original file line number Diff line number Diff line change 113113 "repository" : " https://github.com/why-reproductions-are-required/vitest-playwright-repro.git" ,
114114 "branch" : " main" ,
115115 "hash" : " f7252170025c01ec482fa9ad43e09b965f46928f"
116+ },
117+ "vite-plus-vitest-type-aug" : {
118+ "repository" : " https://github.com/why-reproductions-are-required/vite-plus-vitest-type-aug.git" ,
119+ "branch" : " main" ,
120+ "hash" : " 6192f60653c124ae068efaf5d7d0a4134c95edbd" ,
121+ "forceFreshMigration" : true
116122 }
117123}
Original file line number Diff line number Diff line change 1+ {
2+ "name" : " migration-vitest-peer-dep" ,
3+ "scripts" : {
4+ "dev" : " vite" ,
5+ "build" : " vite build" ,
6+ "test" : " vitest"
7+ },
8+ "devDependencies" : {
9+ "vite" : " ^7.0.0" ,
10+ "vitest-browser-svelte" : " ^2.1.0"
11+ }
12+ }
Original file line number Diff line number Diff line change 1+ > vp migrate --no-interactive # vitest should be added to devDeps when vitest-browser-svelte is present
2+ VITE+ - The Unified Toolchain for the Web
3+
4+ ◇ Migrated . to Vite+<repeat>
5+ • Node <semver> pnpm <semver>
6+ • 2 config updates applied
7+
8+ > cat package.json # vitest should be in devDependencies
9+ {
10+ "name": "migration-vitest-peer-dep",
11+ "scripts": {
12+ "dev": "vp dev",
13+ "build": "vp build",
14+ "test": "vp test",
15+ "prepare": "vp config"
16+ },
17+ "devDependencies": {
18+ "vite": "catalog:",
19+ "vitest-browser-svelte": "^2.1.0",
20+ "vite-plus": "catalog:",
21+ "vitest": "catalog:"
22+ },
23+ "packageManager": "pnpm@<semver>"
24+ }
25+
26+ > cat pnpm-workspace.yaml
27+ catalog:
28+ vite: npm:@voidzero-dev/vite-plus-core@latest
29+ vitest: npm:@voidzero-dev/vite-plus-test@latest
30+ vite-plus: latest
31+ overrides:
32+ vite: 'catalog:'
33+ vitest: 'catalog:'
34+ peerDependencyRules:
35+ allowAny:
36+ - vite
37+ - vitest
38+ allowedVersions:
39+ vite: '*'
40+ vitest: '*'
Original file line number Diff line number Diff line change 1+ {
2+ "commands" : [
3+ " vp migrate --no-interactive # vitest should be added to devDeps when vitest-browser-svelte is present" ,
4+ " cat package.json # vitest should be in devDependencies" ,
5+ " cat pnpm-workspace.yaml"
6+ ]
7+ }
Original file line number Diff line number Diff line change @@ -1399,6 +1399,15 @@ export function rewritePackageJson(
13991399 ...pkg . devDependencies ,
14001400 [ VITE_PLUS_NAME ] : version ,
14011401 } ;
1402+ // Add vitest to devDependencies when a remaining dependency likely peer-depends
1403+ // on vitest (e.g., vitest-browser-svelte). Without this, pnpm resolves the real
1404+ // vitest for peer deps instead of @voidzero -dev/vite-plus-test, causing
1405+ // third-party type augmentations to target the wrong module.
1406+ const allDeps = { ...pkg . dependencies , ...pkg . devDependencies } ;
1407+ if ( ! allDeps . vitest && Object . keys ( allDeps ) . some ( ( name ) => name . includes ( 'vitest' ) ) ) {
1408+ const ver = VITE_PLUS_OVERRIDE_PACKAGES . vitest ;
1409+ pkg . devDependencies . vitest = supportCatalog && ! ver . startsWith ( 'file:' ) ? 'catalog:' : ver ;
1410+ }
14021411 }
14031412 return extractedStagedConfig ;
14041413}
Original file line number Diff line number Diff line change @@ -309,6 +309,8 @@ When upgrading the vitest version:
309309 - createNodeEntry() index-node.js with browser-provider
310310 - copyBrowserClientFiles()
311311 - createBrowserEntryFiles() browser/ entry files at package root
312+ - patchModuleAugmentations() Rewrite @vitest/expect, @vitest/runner augmentations
313+ - patchChaiTypeReference() Add @types/chai triple-slash reference
312314 - createPluginExports() dist/plugins/* for pnpm overrides
313315 - mergePackageJson()
314316 - validateExternalDeps()
Original file line number Diff line number Diff line change @@ -50,6 +50,7 @@ export default defineConfig({
5050 'packages/*/binding/**' ,
5151 'packages/core/rollupLicensePlugin.ts' ,
5252 'packages/core/vite-rolldown.config.ts' ,
53+ 'packages/*/build.ts' ,
5354 ] ,
5455 } ,
5556 test : {
You can’t perform that action at this time.
0 commit comments