Skip to content

Commit 2db1b5b

Browse files
authored
fix: deps optimizer should wait on entries (#8822)
1 parent 2061d41 commit 2db1b5b

File tree

2 files changed

+27
-7
lines changed

2 files changed

+27
-7
lines changed

packages/vite/src/node/plugins/importAnalysis.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -696,17 +696,14 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin {
696696
NULL_BYTE_PLACEHOLDER,
697697
'\0'
698698
)
699-
const request = transformRequest(url, server, { ssr }).catch((e) => {
699+
transformRequest(url, server, { ssr }).catch((e) => {
700700
if (e?.code === ERR_OUTDATED_OPTIMIZED_DEP) {
701701
// This are expected errors
702702
return
703703
}
704704
// Unexpected error, log the issue but avoid an unhandled exception
705705
config.logger.error(e.message)
706706
})
707-
if (depsOptimizer && !config.legacy?.devDepsScanner) {
708-
depsOptimizer.delayDepsOptimizerUntil(id, () => request)
709-
}
710707
})
711708
}
712709

packages/vite/src/node/server/transformRequest.ts

+26-3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
} from '../utils'
1818
import { checkPublicFile } from '../plugins/asset'
1919
import { ssrTransform } from '../ssr/ssrTransform'
20+
import { getDepsOptimizer } from '../optimizer'
2021
import { injectSourcesContent } from './sourcemap'
2122
import { isFileServingAllowed } from './middlewares/static'
2223

@@ -118,9 +119,8 @@ async function doTransform(
118119
) {
119120
url = removeTimestampQuery(url)
120121

121-
const { config, pluginContainer, moduleGraph, watcher } = server
122-
const { root, logger } = config
123-
const prettyUrl = isDebug ? prettifyUrl(url, root) : ''
122+
const { config, pluginContainer } = server
123+
const prettyUrl = isDebug ? prettifyUrl(url, config.root) : ''
124124
const ssr = !!options.ssr
125125

126126
const module = await server.moduleGraph.getModuleByUrl(url, ssr)
@@ -142,6 +142,29 @@ async function doTransform(
142142
// resolve
143143
const id =
144144
(await pluginContainer.resolveId(url, undefined, { ssr }))?.id || url
145+
146+
const result = loadAndTransform(id, url, server, options, timestamp)
147+
148+
const depsOptimizer = getDepsOptimizer(config)
149+
if (depsOptimizer && !config.legacy?.devDepsScanner) {
150+
depsOptimizer.delayDepsOptimizerUntil(id, () => result)
151+
}
152+
153+
return result
154+
}
155+
156+
async function loadAndTransform(
157+
id: string,
158+
url: string,
159+
server: ViteDevServer,
160+
options: TransformOptions,
161+
timestamp: number
162+
) {
163+
const { config, pluginContainer, moduleGraph, watcher } = server
164+
const { root, logger } = config
165+
const prettyUrl = isDebug ? prettifyUrl(url, config.root) : ''
166+
const ssr = !!options.ssr
167+
145168
const file = cleanUrl(id)
146169

147170
let code: string | null = null

0 commit comments

Comments
 (0)