Skip to content

Commit 1aecd65

Browse files
authoredFeb 16, 2024··
fix(vitest): fix optimizeDeps.disabled warnings on Vite 5.1 (#5215)
1 parent b3182e0 commit 1aecd65

File tree

8 files changed

+132
-27
lines changed

8 files changed

+132
-27
lines changed
 

‎packages/vitest/src/node/plugins/utils.ts

+12-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export function resolveOptimizerConfig(_testOptions: DepsOptimizationOptions | u
1313
if (!allowed && testOptions?.enabled === true)
1414
console.warn(`Vitest: "deps.optimizer" is only available in Vite >= 4.3.2, current Vite version: ${viteVersion}`)
1515
else
16-
// enable by default
16+
// disabled by default
1717
testOptions.enabled ??= false
1818
if (!allowed || testOptions?.enabled !== true) {
1919
newConfig.cacheDir = undefined
@@ -50,6 +50,17 @@ export function resolveOptimizerConfig(_testOptions: DepsOptimizationOptions | u
5050
include,
5151
}
5252
}
53+
54+
// `optimizeDeps.disabled` is deprecated since v5.1.0-beta.1
55+
// https://github.com/vitejs/vite/pull/15184
56+
if (major >= 5 && minor >= 1) {
57+
if (newConfig.optimizeDeps.disabled) {
58+
newConfig.optimizeDeps.noDiscovery = true
59+
newConfig.optimizeDeps.include = []
60+
}
61+
delete newConfig.optimizeDeps.disabled
62+
}
63+
5364
return newConfig
5465
}
5566

‎pnpm-lock.yaml

+40-26
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎test/optimize-deps/dep-url/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const importMetaUrl = import.meta.url
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"name": "@vitest/test-deps-url",
3+
"type": "module",
4+
"exports": "./index.js"
5+
}

‎test/optimize-deps/package.json

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"name": "@vitest/test-optimize-deps",
3+
"type": "module",
4+
"private": true,
5+
"scripts": {
6+
"test": "vitest"
7+
},
8+
"devDependencies": {
9+
"@vitest/test-dep-url": "file:./dep-url",
10+
"vitest": "workspace:*"
11+
}
12+
}

‎test/optimize-deps/test/ssr.test.ts

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// @vitest-environment node
2+
3+
import { expect, test } from 'vitest'
4+
5+
// @ts-expect-error untyped
6+
import { importMetaUrl } from '@vitest/test-dep-url'
7+
8+
// TODO: flaky on Windows
9+
// https://github.com/vitest-dev/vitest/pull/5215#discussion_r1492066033
10+
test.skipIf(process.platform === 'win32')('import.meta.url', () => {
11+
expect(importMetaUrl).toContain('/node_modules/.vitest/deps_ssr/')
12+
})

‎test/optimize-deps/test/web.test.ts

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// @vitest-environment happy-dom
2+
3+
import { expect, test } from 'vitest'
4+
5+
// @ts-expect-error untyped
6+
import { importMetaUrl } from '@vitest/test-dep-url'
7+
8+
test('import.meta.url', () => {
9+
expect(importMetaUrl).toContain('/node_modules/.vitest/deps/')
10+
})

‎test/optimize-deps/vitest.config.ts

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import { defineConfig } from 'vitest/config'
2+
3+
export default defineConfig({
4+
optimizeDeps: {
5+
include: ['@vitest/test-dep-url'],
6+
},
7+
ssr: {
8+
optimizeDeps: {
9+
include: ['@vitest/test-dep-url'],
10+
},
11+
},
12+
test: {
13+
chaiConfig: {
14+
truncateThreshold: 1000,
15+
},
16+
deps: {
17+
optimizer: {
18+
web: {
19+
enabled: true,
20+
},
21+
ssr: {
22+
enabled: true,
23+
},
24+
},
25+
},
26+
},
27+
// use dummy ssrLoadModule to trigger ssr.optimizeDeps.
28+
// this will be unnecessary from Vite 5.1
29+
// cf. https://github.com/vitejs/vite/pull/15561
30+
plugins: [
31+
{
32+
name: 'force-ssr-optimize-deps',
33+
configureServer(server) {
34+
return async () => {
35+
await server.ssrLoadModule('/package.json')
36+
}
37+
},
38+
},
39+
],
40+
})

0 commit comments

Comments
 (0)
Please sign in to comment.