Skip to content

Commit 39041ee

Browse files
authoredOct 28, 2024··
fix(vitest): silence import analysis warning (#6785)
1 parent 03a7703 commit 39041ee

File tree

5 files changed

+19
-4
lines changed

5 files changed

+19
-4
lines changed
 

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { configDefaults, coverageConfigDefaults } from '../../defaults'
1111
import { generateScopedClassName } from '../../integrations/css/css-modules'
1212
import { resolveApiServerConfig } from '../config/resolveConfig'
1313
import { Vitest } from '../core'
14-
import { createViteLogger } from '../viteLogger'
14+
import { createViteLogger, silenceImportViteIgnoreWarning } from '../viteLogger'
1515
import { CoverageTransform } from './coverageTransform'
1616
import { CSSEnablerPlugin } from './cssEnabler'
1717
import { MocksPlugins } from './mocks'
@@ -140,6 +140,7 @@ export async function VitestPlugin(
140140
allowClearScreen: false,
141141
},
142142
)
143+
config.customLogger = silenceImportViteIgnoreWarning(config.customLogger)
143144

144145
// If "coverage.exclude" is not defined by user, add "test.include" to "coverage.exclude" automatically
145146
if (userConfig.coverage?.enabled && !userConfig.coverage.exclude && userConfig.include && config.test) {

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { deepMerge } from '@vitest/utils'
66
import { basename, dirname, relative, resolve } from 'pathe'
77
import { configDefaults } from '../../defaults'
88
import { generateScopedClassName } from '../../integrations/css/css-modules'
9-
import { createViteLogger } from '../viteLogger'
9+
import { createViteLogger, silenceImportViteIgnoreWarning } from '../viteLogger'
1010
import { CoverageTransform } from './coverageTransform'
1111
import { CSSEnablerPlugin } from './cssEnabler'
1212
import { MocksPlugins } from './mocks'
@@ -132,6 +132,7 @@ export function WorkspaceVitestPlugin(
132132
allowClearScreen: false,
133133
},
134134
)
135+
config.customLogger = silenceImportViteIgnoreWarning(config.customLogger)
135136

136137
return config
137138
},

‎packages/vitest/src/node/viteLogger.ts

+13
Original file line numberDiff line numberDiff line change
@@ -135,3 +135,16 @@ export function createViteLogger(
135135

136136
return logger
137137
}
138+
139+
// silence warning by Vite for statically not analysizable dynamimc import
140+
export function silenceImportViteIgnoreWarning(logger: Logger): Logger {
141+
return {
142+
...logger,
143+
warn(msg, options) {
144+
if (msg.includes('The above dynamic import cannot be analyzed by Vite')) {
145+
return
146+
}
147+
logger.warn(msg, options)
148+
},
149+
}
150+
}

‎test/core/src/relative-import.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
export function dynamicRelativeImport(file: string) {
2-
return import(`./${file}.ts`)
2+
return import(/* @vite-ignore */ `./${file}.ts`)
33
}

‎test/core/test/imports.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ test('dynamic import throws an error', async () => {
9090
test('can import @vite/client', async () => {
9191
const name = '@vite/client'
9292
await expect(import(name)).resolves.not.toThrow()
93-
await expect(import(`/${name}`)).resolves.not.toThrow()
93+
await expect(import(/* @vite-ignore */ `/${name}`)).resolves.not.toThrow()
9494
})
9595

9696
describe('importing special files from node_modules', async () => {

0 commit comments

Comments
 (0)
Please sign in to comment.