Repository navigation
fix(bundled-dev): map forwarded error stacks through the bundle source maps - #23741
Conversation
74f95c3 to
b9d26db
Compare
c0441f2 to
64308ce
Compare
64308ce to
95b63a7
Compare
| memoryFiles: MemoryFiles, | ||
| chunkPath: string, | ||
| ) { | ||
| const outDir = getBundledDevOutDir(environment) |
There was a problem hiding this comment.
I think we should calculate this value only once.
| if (memoryFiles) { | ||
| return !isInNodeModules(stack.file) && fs.existsSync(stack.file) | ||
| } |
There was a problem hiding this comment.
Where did this !isInNodeModules(stack.file) come from?
There was a problem hiding this comment.
I wrote this because I was trying to guess why we use module.transformResult as a hint to filter the modules in the stack. I thought it's a way to distinguish user code from vendor code. Then I did a deeper research just now and found out this might be a bug but happens to be working:
In plain dev, frames in node_modules never pass that check either, but only as a side effect:
- a pre-bundled dep is mapped back to its original file, and the graph only has the .vite/deps copy so
module.transformResultis not there, thus that stack is ignored. - a dep excluded from pre-bundling keeps the ?v= query in the frame path, so the lookup misses so that stack is ignored again.
But the result seems to be expected, based on my assumption by checking the behavior for plain dev, as we don't want user to work on vendor errors that are beyond our control so instead we use user code as the code frame.
Maybe we can use isInNodeModules here or use dev.sourcemapIgnoreList as its default is isInNodeModules as well.
There was a problem hiding this comment.
I see. I guess dev.sourcemapIgnoreList makes sense here.
@hi-ogawa Just in case, this is meant to find out the first user (authored) code, right?
There was a problem hiding this comment.
Just in case, this is meant to find out the first user (authored) code, right?
Yes, that's the idea. To be honest, I'm not sure in practice whether showing user code stack is always better than showing the actual error source in dependency (or Vitest's node testing case it's external module), but Vitest error printing behavior was like this for a long time, so the same idea is ported to forward console.
…pIgnoreList` for the code frame Claude-Session: https://claude.ai/code/session_01EiHPW8rsaDurDnTT3ihL3J
4c1590b to
6b277b2
Compare
| datasource | package | from | to | | ---------- | ------- | ----- | ----- | | npm | vite | 8.3.0 | 8.3.5 | ## [v8.3.5](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-835-2026-10-21-small) ##### Bug Fixes - **build:** handle missing chunk import maps ([#23777](vitejs/vite#23777)) ([8d7623d](vitejs/vite@8d7623d)) - **build:** include preload dependencies to chunk import map hashing ([#23793](vitejs/vite#23793)) ([4d16e7c](vitejs/vite@4d16e7c)) - **bundled-dev:** apply `server.origin` to asset URLs ([#23683](vitejs/vite#23683)) ([52ba877](vitejs/vite@52ba877)) - **bundled-dev:** declare utf-8 charset in fallback page ([#23846](vitejs/vite#23846)) ([197daf6](vitejs/vite@197daf6)) - **bundled-dev:** ignore build.chunkImportMap ([#23685](vitejs/vite#23685)) ([cfe917d](vitejs/vite@cfe917d)) - **bundled-dev:** include user `import.meta.env.*` defines in the `import.meta.env` object ([#23713](vitejs/vite#23713)) ([6019aa7](vitejs/vite@6019aa7)) - **bundled-dev:** map forwarded error stacks through the bundle source maps ([#23741](vitejs/vite#23741)) ([11fe1e4](vitejs/vite@11fe1e4)) - **bundled-dev:** normalize served output files ([#23684](vitejs/vite#23684)) ([df4e02c](vitejs/vite@df4e02c)) - **bundled-dev:** stop hmr propagation at modules that are no longer imported ([#23839](vitejs/vite#23839)) ([7471e8c](vitejs/vite@7471e8c)) - **css:** don't fail on a literal `%` in `url()` ([#23676](vitejs/vite#23676)) ([50b382d](vitejs/vite@50b382d)) - **deps:** update all non-major dependencies ([#23731](vitejs/vite#23731)) ([cf80aa5](vitejs/vite@cf80aa5)) - **deps:** update all non-major dependencies ([#23826](vitejs/vite#23826)) ([77d8373](vitejs/vite@77d8373)) - **deps:** update rolldown-related dependencies ([#23733](vitejs/vite#23733)) ([43f0d05](vitejs/vite@43f0d05)) - **deps:** update rolldown-related dependencies ([#23827](vitejs/vite#23827)) ([c2e0418](vitejs/vite@c2e0418)) - **optimizer:** fall back to yarn.lock for lockfile hash ([#23667](vitejs/vite#23667)) ([f206096](vitejs/vite@f206096)) - **optimizer:** scan `oxc.jsxInject` imports ([#23758](vitejs/vite#23758)) ([38f3cb4](vitejs/vite@38f3cb4)) - **optimizer:** skip patches dir check for yarn.lock fallback ([#23725](vitejs/vite#23725)) ([8e890e1](vitejs/vite@8e890e1)) - **optimizer:** skip patches dir hash for nub lockfile ([#23761](vitejs/vite#23761)) ([a7d5696](vitejs/vite@a7d5696)) - **resolve:** support subpath imports with multiple `#` ([#23631](vitejs/vite#23631)) ([0d86b34](vitejs/vite@0d86b34)) - **resolve:** update resolve.exports to 2.0.4 ([#23739](vitejs/vite#23739)) ([4ea708a](vitejs/vite@4ea708a)) - **server:** handle socket errors on upgrade requests not taken by the HMR server ([#23728](vitejs/vite#23728)) ([c2c9ef4](vitejs/vite@c2c9ef4)) - **server:** only strip base when path matches a full segment ([#23641](vitejs/vite#23641)) ([3dfde87](vitejs/vite@3dfde87)) ##### Performance Improvements - **ssr:** extract inline source maps without a regexp ([#23775](vitejs/vite#23775)) ([6a02780](vitejs/vite@6a02780)) ##### Miscellaneous Chores - migrate to Oxlint ([#23746](vitejs/vite#23746)) ([5b73935](vitejs/vite@5b73935)) ##### Code Refactoring - **deps:** replace `@vercel/detect-agent` with `std-env` ([#23744](vitejs/vite#23744)) ([ce4293f](vitejs/vite@ce4293f)) - **dev:** consolidate moduleURL to file path utilities ([#23828](vitejs/vite#23828)) ([df7b40e](vitejs/vite@df7b40e)) - **dev:** separate import resolution from URL conversion ([#23791](vitejs/vite#23791)) ([6116689](vitejs/vite@6116689)) - **dev:** share ModuleURL and BrowserURL conversions ([#23790](vitejs/vite#23790)) ([446954c](vitejs/vite@446954c)) - **dev:** use ModuleURLs throughout HTML transforms ([#23815](vitejs/vite#23815)) ([a162990](vitejs/vite@a162990)) ## [v8.3.4](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-834-2026-10-08-small) ##### Features - **bundled-dev:** support `import.meta.hot.acceptExports` ([#23463](vitejs/vite#23463)) ([bc0f21c](vitejs/vite@bc0f21c)) ##### Bug Fixes - avoid mutating hmr defaults (fix [#23575](vitejs/vite#23575)) ([#23576](vitejs/vite#23576)) ([574d5e3](vitejs/vite@574d5e3)) - **build:** correct preloads when chunkImportMap is enabled with non-root base ([#23698](vitejs/vite#23698)) ([2a8c0f0](vitejs/vite@2a8c0f0)) - **build:** wait for in-flight stylesheets in preload helper (fix [#23652](vitejs/vite#23652)) ([#23662](vitejs/vite#23662)) ([036b745](vitejs/vite@036b745)) - **bundled-dev:** serve `/@vite/client` and stub `@vite/env` ([#23664](vitejs/vite#23664)) ([5afc5a8](vitejs/vite@5afc5a8)) - **client:** skip rewriting unchanged adopted styles ([#23697](vitejs/vite#23697)) ([fa71469](vitejs/vite@fa71469)) - **css:** resolve imported preprocessors from their file path with lightningcss ([#23688](vitejs/vite#23688)) ([cf52011](vitejs/vite@cf52011)) - **deps:** update all non-major dependencies ([#23648](vitejs/vite#23648)) ([8a4c19c](vitejs/vite@8a4c19c)) - **deps:** update rolldown-related dependencies ([#23649](vitejs/vite#23649)) ([794516d](vitejs/vite@794516d)) - **dev:** a restart requested during a restart used to be dropped (fix [#23392](vitejs/vite#23392)) ([#23484](vitejs/vite#23484)) ([70d56ea](vitejs/vite@70d56ea)) - don't treat modules ending with js-like query as js ([#23687](vitejs/vite#23687)) ([fcb6f12](vitejs/vite@fcb6f12)) - **html:** avoid adding filesystem root to watcher ([#23689](vitejs/vite#23689)) ([3a7f2ae](vitejs/vite@3a7f2ae)) - **html:** skip caching CSS of chunks in a cycle (fix [#23628](vitejs/vite#23628)) ([#23636](vitejs/vite#23636)) ([15d82f7](vitejs/vite@15d82f7)) - **optimizer:** scan deep imports with custom extensions ([#23678](vitejs/vite#23678)) ([8579189](vitejs/vite@8579189)) - remove input option unescaping for now ([#23694](vitejs/vite#23694)) ([facc2fb](vitejs/vite@facc2fb)) - **server:** match static aliases on path boundaries ([#23643](vitejs/vite#23643)) ([b28db28](vitejs/vite@b28db28)) - **watcher:** normalize file before root check in `ensureWatchedFile` ([#23673](vitejs/vite#23673)) ([12bb28c](vitejs/vite@12bb28c)) ##### Performance Improvements - **module-runner:** skip cloning call sites that have no source map ([#23646](vitejs/vite#23646)) ([3d67486](vitejs/vite@3d67486)) ##### Code Refactoring - **bundled-dev:** import CSS HMR helpers from `/@vite/client` ([#23674](vitejs/vite#23674)) ([182f5b2](vitejs/vite@182f5b2)) ## [v8.3.3](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-833-2026-10-06-small) ##### Bug Fixes - **deps:** update launch-editor to v2.14.2 ([#23654](vitejs/vite#23654)) ([22fd1d5](vitejs/vite@22fd1d5)) - **html:** filename passed to transformIndexHtml should not include queries ([#23653](vitejs/vite#23653)) ([7dafd8e](vitejs/vite@7dafd8e)) - **server:** check `fs.serve` for `?vite-wasm-instance` ([#23655](vitejs/vite#23655)) ([ba8b7ab](vitejs/vite@ba8b7ab)) - **server:** store ids to `safeModulePaths` rather than URLs ([#23656](vitejs/vite#23656)) ([c3e06f9](vitejs/vite@c3e06f9)) ## [v8.3.2](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-832-2026-10-01-small) ##### Bug Fixes - **build:** preload CSS correctly when `renderBuiltUrl` returns URLs with queries ([#23611](vitejs/vite#23611)) ([64e0a21](vitejs/vite@64e0a21)) - **bundled-dev:** serve lazy chunk sourcemaps ([#23026](vitejs/vite#23026)) ([eb7aa9a](vitejs/vite@eb7aa9a)) - **bundled-dev:** serve the rolldown runtime from the installed rolldown ([#23568](vitejs/vite#23568)) ([bc598a6](vitejs/vite@bc598a6)) - **deps:** update all non-major dependencies ([#23601](vitejs/vite#23601)) ([9944fa6](vitejs/vite@9944fa6)) - **deps:** update rolldown-related dependencies ([#23602](vitejs/vite#23602)) ([88c1741](vitejs/vite@88c1741)) - **html:** resolve percent-encoded srcset urls ([#23609](vitejs/vite#23609)) ([53f1ce7](vitejs/vite@53f1ce7)) - limit size of object and array printing via `forwardConsole` ([#23565](vitejs/vite#23565)) ([e64a587](vitejs/vite@e64a587)) - merge `build.rolldownOptions.output.minify` correctly ([#23536](vitejs/vite#23536)) ([bba3bb8](vitejs/vite@bba3bb8)) - **optimize-deps:** avoid "unsupported" warnings for browser:false mappings ([#23590](vitejs/vite#23590)) ([5e4b9ca](vitejs/vite@5e4b9ca)) - **optimizer:** preserve excluded optional peer require fallbacks ([#23600](vitejs/vite#23600)) ([a2bd6fa](vitejs/vite@a2bd6fa)) - pass queries to `renderBuiltUrl` ([#23586](vitejs/vite#23586)) ([744269e](vitejs/vite@744269e)) - **server:** handle file watcher errors without crashing ([#23503](vitejs/vite#23503)) ([6894f5c](vitejs/vite@6894f5c)) - **server:** release previous environments after initialization ([#23499](vitejs/vite#23499)) ([5a3a010](vitejs/vite@5a3a010)) - **ssr:** encode whitespace in module runner sourceURL ([#23513](vitejs/vite#23513)) ([bbc8812](vitejs/vite@bbc8812)) - **worker:** align worker urls in client and server when using terser ([#23614](vitejs/vite#23614)) ([24bd331](vitejs/vite@24bd331)) ##### Performance Improvements - avoid encoding intermediate source maps ([#23461](vitejs/vite#23461)) ([89574f6](vitejs/vite@89574f6)) - **build:** avoid quadratic link scan in the preload helper ([#23510](vitejs/vite#23510)) ([cf5c028](vitejs/vite@cf5c028)) - only register time middleware when debug logging is enabled ([#23621](vitejs/vite#23621)) ([94d0080](vitejs/vite@94d0080)) ##### Documentation - fix dead og-image PNG links in vite6/vite7 changelog entries ([#23594](vitejs/vite#23594)) ([1929b4c](vitejs/vite@1929b4c)) ##### Miscellaneous Chores - **deps:** update vitest monorepo to v5 ([#23604](vitejs/vite#23604)) ([24339f4](vitejs/vite@24339f4)) ##### Code Refactoring - use `tinyexec` instead of `cross-spawn` ([#23583](vitejs/vite#23583)) ([db915e5](vitejs/vite@db915e5)) ##### Tests - **bundled-dev:** accept a rolldown dev runtime with no helper imports ([#23606](vitejs/vite#23606)) ([634745d](vitejs/vite@634745d)) ## [v8.3.1](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-831-2026-09-24-small) ##### Bug Fixes - **deps:** update all non-major dependencies ([#23482](vitejs/vite#23482)) ([3c752c8](vitejs/vite@3c752c8)) - **deps:** update all non-major dependencies ([#23537](vitejs/vite#23537)) ([e8990c4](vitejs/vite@e8990c4)) - **deps:** update rolldown-related dependencies ([#23483](vitejs/vite#23483)) ([9aecbbf](vitejs/vite@9aecbbf)) - handle `server.ws: false` in mergeConfig ([#23511](vitejs/vite#23511)) ([f68c0d5](vitejs/vite@f68c0d5)) - merge `build.rolldownOptions.output.comments` correctly ([#23514](vitejs/vite#23514)) ([4aba8d8](vitejs/vite@4aba8d8)) - **optimizer:** don't skip imports whose binding starts with type ([#23540](vitejs/vite#23540)) ([39330f4](vitejs/vite@39330f4)) - **optimizer:** resolve pending discovered dep processing on close before init ([#23567](vitejs/vite#23567)) ([5f89433](vitejs/vite@5f89433)) - **server:** avoid reinitializing watcher when adding file after server close ([#23572](vitejs/vite#23572)) ([6f831f9](vitejs/vite@6f831f9)) - **sourcemap:** skip URL source roots when injecting sources content ([#23519](vitejs/vite#23519)) ([04fc30a](vitejs/vite@04fc30a)) ##### Miscellaneous Chores - merge prereleases in changelog ([#23466](vitejs/vite#23466)) ([99bd9d1](vitejs/vite@99bd9d1)) - **optimizer:** add debug log when waiting for dep before init ([#23566](vitejs/vite#23566)) ([63567c7](vitejs/vite@63567c7)) - update `optimizeDeps.include` comment ([#23489](vitejs/vite#23489)) ([6a84c72](vitejs/vite@6a84c72)) ##### Code Refactoring - assets regexp use non-capture ([#23491](vitejs/vite#23491)) ([f4b4431](vitejs/vite@f4b4431)) - remove duplicate configurations ([#23532](vitejs/vite#23532)) ([9abd99b](vitejs/vite@9abd99b)) - replace `find` with `some` ([#23554](vitejs/vite#23554)) ([af7cdf6](vitejs/vite@af7cdf6))
| datasource | package | from | to | | ---------- | ------- | ----- | ----- | | npm | vite | 8.3.0 | 8.3.5 | ## [v8.3.5](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-835-2026-10-21-small) ##### Bug Fixes - **build:** handle missing chunk import maps ([#23777](vitejs/vite#23777)) ([8d7623d](vitejs/vite@8d7623d)) - **build:** include preload dependencies to chunk import map hashing ([#23793](vitejs/vite#23793)) ([4d16e7c](vitejs/vite@4d16e7c)) - **bundled-dev:** apply `server.origin` to asset URLs ([#23683](vitejs/vite#23683)) ([52ba877](vitejs/vite@52ba877)) - **bundled-dev:** declare utf-8 charset in fallback page ([#23846](vitejs/vite#23846)) ([197daf6](vitejs/vite@197daf6)) - **bundled-dev:** ignore build.chunkImportMap ([#23685](vitejs/vite#23685)) ([cfe917d](vitejs/vite@cfe917d)) - **bundled-dev:** include user `import.meta.env.*` defines in the `import.meta.env` object ([#23713](vitejs/vite#23713)) ([6019aa7](vitejs/vite@6019aa7)) - **bundled-dev:** map forwarded error stacks through the bundle source maps ([#23741](vitejs/vite#23741)) ([11fe1e4](vitejs/vite@11fe1e4)) - **bundled-dev:** normalize served output files ([#23684](vitejs/vite#23684)) ([df4e02c](vitejs/vite@df4e02c)) - **bundled-dev:** stop hmr propagation at modules that are no longer imported ([#23839](vitejs/vite#23839)) ([7471e8c](vitejs/vite@7471e8c)) - **css:** don't fail on a literal `%` in `url()` ([#23676](vitejs/vite#23676)) ([50b382d](vitejs/vite@50b382d)) - **deps:** update all non-major dependencies ([#23731](vitejs/vite#23731)) ([cf80aa5](vitejs/vite@cf80aa5)) - **deps:** update all non-major dependencies ([#23826](vitejs/vite#23826)) ([77d8373](vitejs/vite@77d8373)) - **deps:** update rolldown-related dependencies ([#23733](vitejs/vite#23733)) ([43f0d05](vitejs/vite@43f0d05)) - **deps:** update rolldown-related dependencies ([#23827](vitejs/vite#23827)) ([c2e0418](vitejs/vite@c2e0418)) - **optimizer:** fall back to yarn.lock for lockfile hash ([#23667](vitejs/vite#23667)) ([f206096](vitejs/vite@f206096)) - **optimizer:** scan `oxc.jsxInject` imports ([#23758](vitejs/vite#23758)) ([38f3cb4](vitejs/vite@38f3cb4)) - **optimizer:** skip patches dir check for yarn.lock fallback ([#23725](vitejs/vite#23725)) ([8e890e1](vitejs/vite@8e890e1)) - **optimizer:** skip patches dir hash for nub lockfile ([#23761](vitejs/vite#23761)) ([a7d5696](vitejs/vite@a7d5696)) - **resolve:** support subpath imports with multiple `#` ([#23631](vitejs/vite#23631)) ([0d86b34](vitejs/vite@0d86b34)) - **resolve:** update resolve.exports to 2.0.4 ([#23739](vitejs/vite#23739)) ([4ea708a](vitejs/vite@4ea708a)) - **server:** handle socket errors on upgrade requests not taken by the HMR server ([#23728](vitejs/vite#23728)) ([c2c9ef4](vitejs/vite@c2c9ef4)) - **server:** only strip base when path matches a full segment ([#23641](vitejs/vite#23641)) ([3dfde87](vitejs/vite@3dfde87)) ##### Performance Improvements - **ssr:** extract inline source maps without a regexp ([#23775](vitejs/vite#23775)) ([6a02780](vitejs/vite@6a02780)) ##### Miscellaneous Chores - migrate to Oxlint ([#23746](vitejs/vite#23746)) ([5b73935](vitejs/vite@5b73935)) ##### Code Refactoring - **deps:** replace `@vercel/detect-agent` with `std-env` ([#23744](vitejs/vite#23744)) ([ce4293f](vitejs/vite@ce4293f)) - **dev:** consolidate moduleURL to file path utilities ([#23828](vitejs/vite#23828)) ([df7b40e](vitejs/vite@df7b40e)) - **dev:** separate import resolution from URL conversion ([#23791](vitejs/vite#23791)) ([6116689](vitejs/vite@6116689)) - **dev:** share ModuleURL and BrowserURL conversions ([#23790](vitejs/vite#23790)) ([446954c](vitejs/vite@446954c)) - **dev:** use ModuleURLs throughout HTML transforms ([#23815](vitejs/vite#23815)) ([a162990](vitejs/vite@a162990)) ## [v8.3.4](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-834-2026-10-08-small) ##### Features - **bundled-dev:** support `import.meta.hot.acceptExports` ([#23463](vitejs/vite#23463)) ([bc0f21c](vitejs/vite@bc0f21c)) ##### Bug Fixes - avoid mutating hmr defaults (fix [#23575](vitejs/vite#23575)) ([#23576](vitejs/vite#23576)) ([574d5e3](vitejs/vite@574d5e3)) - **build:** correct preloads when chunkImportMap is enabled with non-root base ([#23698](vitejs/vite#23698)) ([2a8c0f0](vitejs/vite@2a8c0f0)) - **build:** wait for in-flight stylesheets in preload helper (fix [#23652](vitejs/vite#23652)) ([#23662](vitejs/vite#23662)) ([036b745](vitejs/vite@036b745)) - **bundled-dev:** serve `/@vite/client` and stub `@vite/env` ([#23664](vitejs/vite#23664)) ([5afc5a8](vitejs/vite@5afc5a8)) - **client:** skip rewriting unchanged adopted styles ([#23697](vitejs/vite#23697)) ([fa71469](vitejs/vite@fa71469)) - **css:** resolve imported preprocessors from their file path with lightningcss ([#23688](vitejs/vite#23688)) ([cf52011](vitejs/vite@cf52011)) - **deps:** update all non-major dependencies ([#23648](vitejs/vite#23648)) ([8a4c19c](vitejs/vite@8a4c19c)) - **deps:** update rolldown-related dependencies ([#23649](vitejs/vite#23649)) ([794516d](vitejs/vite@794516d)) - **dev:** a restart requested during a restart used to be dropped (fix [#23392](vitejs/vite#23392)) ([#23484](vitejs/vite#23484)) ([70d56ea](vitejs/vite@70d56ea)) - don't treat modules ending with js-like query as js ([#23687](vitejs/vite#23687)) ([fcb6f12](vitejs/vite@fcb6f12)) - **html:** avoid adding filesystem root to watcher ([#23689](vitejs/vite#23689)) ([3a7f2ae](vitejs/vite@3a7f2ae)) - **html:** skip caching CSS of chunks in a cycle (fix [#23628](vitejs/vite#23628)) ([#23636](vitejs/vite#23636)) ([15d82f7](vitejs/vite@15d82f7)) - **optimizer:** scan deep imports with custom extensions ([#23678](vitejs/vite#23678)) ([8579189](vitejs/vite@8579189)) - remove input option unescaping for now ([#23694](vitejs/vite#23694)) ([facc2fb](vitejs/vite@facc2fb)) - **server:** match static aliases on path boundaries ([#23643](vitejs/vite#23643)) ([b28db28](vitejs/vite@b28db28)) - **watcher:** normalize file before root check in `ensureWatchedFile` ([#23673](vitejs/vite#23673)) ([12bb28c](vitejs/vite@12bb28c)) ##### Performance Improvements - **module-runner:** skip cloning call sites that have no source map ([#23646](vitejs/vite#23646)) ([3d67486](vitejs/vite@3d67486)) ##### Code Refactoring - **bundled-dev:** import CSS HMR helpers from `/@vite/client` ([#23674](vitejs/vite#23674)) ([182f5b2](vitejs/vite@182f5b2)) ## [v8.3.3](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-833-2026-10-06-small) ##### Bug Fixes - **deps:** update launch-editor to v2.14.2 ([#23654](vitejs/vite#23654)) ([22fd1d5](vitejs/vite@22fd1d5)) - **html:** filename passed to transformIndexHtml should not include queries ([#23653](vitejs/vite#23653)) ([7dafd8e](vitejs/vite@7dafd8e)) - **server:** check `fs.serve` for `?vite-wasm-instance` ([#23655](vitejs/vite#23655)) ([ba8b7ab](vitejs/vite@ba8b7ab)) - **server:** store ids to `safeModulePaths` rather than URLs ([#23656](vitejs/vite#23656)) ([c3e06f9](vitejs/vite@c3e06f9)) ## [v8.3.2](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-832-2026-10-01-small) ##### Bug Fixes - **build:** preload CSS correctly when `renderBuiltUrl` returns URLs with queries ([#23611](vitejs/vite#23611)) ([64e0a21](vitejs/vite@64e0a21)) - **bundled-dev:** serve lazy chunk sourcemaps ([#23026](vitejs/vite#23026)) ([eb7aa9a](vitejs/vite@eb7aa9a)) - **bundled-dev:** serve the rolldown runtime from the installed rolldown ([#23568](vitejs/vite#23568)) ([bc598a6](vitejs/vite@bc598a6)) - **deps:** update all non-major dependencies ([#23601](vitejs/vite#23601)) ([9944fa6](vitejs/vite@9944fa6)) - **deps:** update rolldown-related dependencies ([#23602](vitejs/vite#23602)) ([88c1741](vitejs/vite@88c1741)) - **html:** resolve percent-encoded srcset urls ([#23609](vitejs/vite#23609)) ([53f1ce7](vitejs/vite@53f1ce7)) - limit size of object and array printing via `forwardConsole` ([#23565](vitejs/vite#23565)) ([e64a587](vitejs/vite@e64a587)) - merge `build.rolldownOptions.output.minify` correctly ([#23536](vitejs/vite#23536)) ([bba3bb8](vitejs/vite@bba3bb8)) - **optimize-deps:** avoid "unsupported" warnings for browser:false mappings ([#23590](vitejs/vite#23590)) ([5e4b9ca](vitejs/vite@5e4b9ca)) - **optimizer:** preserve excluded optional peer require fallbacks ([#23600](vitejs/vite#23600)) ([a2bd6fa](vitejs/vite@a2bd6fa)) - pass queries to `renderBuiltUrl` ([#23586](vitejs/vite#23586)) ([744269e](vitejs/vite@744269e)) - **server:** handle file watcher errors without crashing ([#23503](vitejs/vite#23503)) ([6894f5c](vitejs/vite@6894f5c)) - **server:** release previous environments after initialization ([#23499](vitejs/vite#23499)) ([5a3a010](vitejs/vite@5a3a010)) - **ssr:** encode whitespace in module runner sourceURL ([#23513](vitejs/vite#23513)) ([bbc8812](vitejs/vite@bbc8812)) - **worker:** align worker urls in client and server when using terser ([#23614](vitejs/vite#23614)) ([24bd331](vitejs/vite@24bd331)) ##### Performance Improvements - avoid encoding intermediate source maps ([#23461](vitejs/vite#23461)) ([89574f6](vitejs/vite@89574f6)) - **build:** avoid quadratic link scan in the preload helper ([#23510](vitejs/vite#23510)) ([cf5c028](vitejs/vite@cf5c028)) - only register time middleware when debug logging is enabled ([#23621](vitejs/vite#23621)) ([94d0080](vitejs/vite@94d0080)) ##### Documentation - fix dead og-image PNG links in vite6/vite7 changelog entries ([#23594](vitejs/vite#23594)) ([1929b4c](vitejs/vite@1929b4c)) ##### Miscellaneous Chores - **deps:** update vitest monorepo to v5 ([#23604](vitejs/vite#23604)) ([24339f4](vitejs/vite@24339f4)) ##### Code Refactoring - use `tinyexec` instead of `cross-spawn` ([#23583](vitejs/vite#23583)) ([db915e5](vitejs/vite@db915e5)) ##### Tests - **bundled-dev:** accept a rolldown dev runtime with no helper imports ([#23606](vitejs/vite#23606)) ([634745d](vitejs/vite@634745d)) ## [v8.3.1](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-831-2026-09-24-small) ##### Bug Fixes - **deps:** update all non-major dependencies ([#23482](vitejs/vite#23482)) ([3c752c8](vitejs/vite@3c752c8)) - **deps:** update all non-major dependencies ([#23537](vitejs/vite#23537)) ([e8990c4](vitejs/vite@e8990c4)) - **deps:** update rolldown-related dependencies ([#23483](vitejs/vite#23483)) ([9aecbbf](vitejs/vite@9aecbbf)) - handle `server.ws: false` in mergeConfig ([#23511](vitejs/vite#23511)) ([f68c0d5](vitejs/vite@f68c0d5)) - merge `build.rolldownOptions.output.comments` correctly ([#23514](vitejs/vite#23514)) ([4aba8d8](vitejs/vite@4aba8d8)) - **optimizer:** don't skip imports whose binding starts with type ([#23540](vitejs/vite#23540)) ([39330f4](vitejs/vite@39330f4)) - **optimizer:** resolve pending discovered dep processing on close before init ([#23567](vitejs/vite#23567)) ([5f89433](vitejs/vite@5f89433)) - **server:** avoid reinitializing watcher when adding file after server close ([#23572](vitejs/vite#23572)) ([6f831f9](vitejs/vite@6f831f9)) - **sourcemap:** skip URL source roots when injecting sources content ([#23519](vitejs/vite#23519)) ([04fc30a](vitejs/vite@04fc30a)) ##### Miscellaneous Chores - merge prereleases in changelog ([#23466](vitejs/vite#23466)) ([99bd9d1](vitejs/vite@99bd9d1)) - **optimizer:** add debug log when waiting for dep before init ([#23566](vitejs/vite#23566)) ([63567c7](vitejs/vite@63567c7)) - update `optimizeDeps.include` comment ([#23489](vitejs/vite#23489)) ([6a84c72](vitejs/vite@6a84c72)) ##### Code Refactoring - assets regexp use non-capture ([#23491](vitejs/vite#23491)) ([f4b4431](vitejs/vite@f4b4431)) - remove duplicate configurations ([#23532](vitejs/vite#23532)) ([9abd99b](vitejs/vite@9abd99b)) - replace `find` with `some` ([#23554](vitejs/vite#23554)) ([af7cdf6](vitejs/vite@af7cdf6))
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [vite](https://vite.dev) ([source](https://github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`8.3.4` → `8.3.5`](https://renovatebot.com/diffs/npm/vite/8.3.4/8.3.5) |  |  | --- ### Release Notes <details> <summary>vitejs/vite (vite)</summary> ### [`v8.3.5`](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-835-2026-10-21-small) [Compare Source](vitejs/vite@v8.3.4...v8.3.5) ##### Bug Fixes - **build:** handle missing chunk import maps ([#​23777](vitejs/vite#23777)) ([8d7623d](vitejs/vite@8d7623d)) - **build:** include preload dependencies to chunk import map hashing ([#​23793](vitejs/vite#23793)) ([4d16e7c](vitejs/vite@4d16e7c)) - **bundled-dev:** apply `server.origin` to asset URLs ([#​23683](vitejs/vite#23683)) ([52ba877](vitejs/vite@52ba877)) - **bundled-dev:** declare utf-8 charset in fallback page ([#​23846](vitejs/vite#23846)) ([197daf6](vitejs/vite@197daf6)) - **bundled-dev:** ignore build.chunkImportMap ([#​23685](vitejs/vite#23685)) ([cfe917d](vitejs/vite@cfe917d)) - **bundled-dev:** include user `import.meta.env.*` defines in the `import.meta.env` object ([#​23713](vitejs/vite#23713)) ([6019aa7](vitejs/vite@6019aa7)) - **bundled-dev:** map forwarded error stacks through the bundle source maps ([#​23741](vitejs/vite#23741)) ([11fe1e4](vitejs/vite@11fe1e4)) - **bundled-dev:** normalize served output files ([#​23684](vitejs/vite#23684)) ([df4e02c](vitejs/vite@df4e02c)) - **bundled-dev:** stop hmr propagation at modules that are no longer imported ([#​23839](vitejs/vite#23839)) ([7471e8c](vitejs/vite@7471e8c)) - **css:** don't fail on a literal `%` in `url()` ([#​23676](vitejs/vite#23676)) ([50b382d](vitejs/vite@50b382d)) - **deps:** update all non-major dependencies ([#​23731](vitejs/vite#23731)) ([cf80aa5](vitejs/vite@cf80aa5)) - **deps:** update all non-major dependencies ([#​23826](vitejs/vite#23826)) ([77d8373](vitejs/vite@77d8373)) - **deps:** update rolldown-related dependencies ([#​23733](vitejs/vite#23733)) ([43f0d05](vitejs/vite@43f0d05)) - **deps:** update rolldown-related dependencies ([#​23827](vitejs/vite#23827)) ([c2e0418](vitejs/vite@c2e0418)) - **optimizer:** fall back to yarn.lock for lockfile hash ([#​23667](vitejs/vite#23667)) ([f206096](vitejs/vite@f206096)) - **optimizer:** scan `oxc.jsxInject` imports ([#​23758](vitejs/vite#23758)) ([38f3cb4](vitejs/vite@38f3cb4)) - **optimizer:** skip patches dir check for yarn.lock fallback ([#​23725](vitejs/vite#23725)) ([8e890e1](vitejs/vite@8e890e1)) - **optimizer:** skip patches dir hash for nub lockfile ([#​23761](vitejs/vite#23761)) ([a7d5696](vitejs/vite@a7d5696)) - **resolve:** support subpath imports with multiple `#` ([#​23631](vitejs/vite#23631)) ([0d86b34](vitejs/vite@0d86b34)) - **resolve:** update resolve.exports to 2.0.4 ([#​23739](vitejs/vite#23739)) ([4ea708a](vitejs/vite@4ea708a)) - **server:** handle socket errors on upgrade requests not taken by the HMR server ([#​23728](vitejs/vite#23728)) ([c2c9ef4](vitejs/vite@c2c9ef4)) - **server:** only strip base when path matches a full segment ([#​23641](vitejs/vite#23641)) ([3dfde87](vitejs/vite@3dfde87)) ##### Performance Improvements - **ssr:** extract inline source maps without a regexp ([#​23775](vitejs/vite#23775)) ([6a02780](vitejs/vite@6a02780)) ##### Miscellaneous Chores - migrate to Oxlint ([#​23746](vitejs/vite#23746)) ([5b73935](vitejs/vite@5b73935)) ##### Code Refactoring - **deps:** replace `@vercel/detect-agent` with `std-env` ([#​23744](vitejs/vite#23744)) ([ce4293f](vitejs/vite@ce4293f)) - **dev:** consolidate moduleURL to file path utilities ([#​23828](vitejs/vite#23828)) ([df7b40e](vitejs/vite@df7b40e)) - **dev:** separate import resolution from URL conversion ([#​23791](vitejs/vite#23791)) ([6116689](vitejs/vite@6116689)) - **dev:** share ModuleURL and BrowserURL conversions ([#​23790](vitejs/vite#23790)) ([446954c](vitejs/vite@446954c)) - **dev:** use ModuleURLs throughout HTML transforms ([#​23815](vitejs/vite#23815)) ([a162990](vitejs/vite@a162990)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODEuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE4MS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [vite](https://vite.dev) ([source](https://github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`8.3.4` → `8.3.5`](https://renovatebot.com/diffs/npm/vite/8.3.4/8.3.5) |  |  | --- ### Release Notes <details> <summary>vitejs/vite (vite)</summary> ### [`v8.3.5`](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-835-2026-10-21-small) [Compare Source](vitejs/vite@v8.3.4...v8.3.5) ##### Bug Fixes - **build:** handle missing chunk import maps ([#​23777](vitejs/vite#23777)) ([8d7623d](vitejs/vite@8d7623d)) - **build:** include preload dependencies to chunk import map hashing ([#​23793](vitejs/vite#23793)) ([4d16e7c](vitejs/vite@4d16e7c)) - **bundled-dev:** apply `server.origin` to asset URLs ([#​23683](vitejs/vite#23683)) ([52ba877](vitejs/vite@52ba877)) - **bundled-dev:** declare utf-8 charset in fallback page ([#​23846](vitejs/vite#23846)) ([197daf6](vitejs/vite@197daf6)) - **bundled-dev:** ignore build.chunkImportMap ([#​23685](vitejs/vite#23685)) ([cfe917d](vitejs/vite@cfe917d)) - **bundled-dev:** include user `import.meta.env.*` defines in the `import.meta.env` object ([#​23713](vitejs/vite#23713)) ([6019aa7](vitejs/vite@6019aa7)) - **bundled-dev:** map forwarded error stacks through the bundle source maps ([#​23741](vitejs/vite#23741)) ([11fe1e4](vitejs/vite@11fe1e4)) - **bundled-dev:** normalize served output files ([#​23684](vitejs/vite#23684)) ([df4e02c](vitejs/vite@df4e02c)) - **bundled-dev:** stop hmr propagation at modules that are no longer imported ([#​23839](vitejs/vite#23839)) ([7471e8c](vitejs/vite@7471e8c)) - **css:** don't fail on a literal `%` in `url()` ([#​23676](vitejs/vite#23676)) ([50b382d](vitejs/vite@50b382d)) - **deps:** update all non-major dependencies ([#​23731](vitejs/vite#23731)) ([cf80aa5](vitejs/vite@cf80aa5)) - **deps:** update all non-major dependencies ([#​23826](vitejs/vite#23826)) ([77d8373](vitejs/vite@77d8373)) - **deps:** update rolldown-related dependencies ([#​23733](vitejs/vite#23733)) ([43f0d05](vitejs/vite@43f0d05)) - **deps:** update rolldown-related dependencies ([#​23827](vitejs/vite#23827)) ([c2e0418](vitejs/vite@c2e0418)) - **optimizer:** fall back to yarn.lock for lockfile hash ([#​23667](vitejs/vite#23667)) ([f206096](vitejs/vite@f206096)) - **optimizer:** scan `oxc.jsxInject` imports ([#​23758](vitejs/vite#23758)) ([38f3cb4](vitejs/vite@38f3cb4)) - **optimizer:** skip patches dir check for yarn.lock fallback ([#​23725](vitejs/vite#23725)) ([8e890e1](vitejs/vite@8e890e1)) - **optimizer:** skip patches dir hash for nub lockfile ([#​23761](vitejs/vite#23761)) ([a7d5696](vitejs/vite@a7d5696)) - **resolve:** support subpath imports with multiple `#` ([#​23631](vitejs/vite#23631)) ([0d86b34](vitejs/vite@0d86b34)) - **resolve:** update resolve.exports to 2.0.4 ([#​23739](vitejs/vite#23739)) ([4ea708a](vitejs/vite@4ea708a)) - **server:** handle socket errors on upgrade requests not taken by the HMR server ([#​23728](vitejs/vite#23728)) ([c2c9ef4](vitejs/vite@c2c9ef4)) - **server:** only strip base when path matches a full segment ([#​23641](vitejs/vite#23641)) ([3dfde87](vitejs/vite@3dfde87)) ##### Performance Improvements - **ssr:** extract inline source maps without a regexp ([#​23775](vitejs/vite#23775)) ([6a02780](vitejs/vite@6a02780)) ##### Miscellaneous Chores - migrate to Oxlint ([#​23746](vitejs/vite#23746)) ([5b73935](vitejs/vite@5b73935)) ##### Code Refactoring - **deps:** replace `@vercel/detect-agent` with `std-env` ([#​23744](vitejs/vite#23744)) ([ce4293f](vitejs/vite@ce4293f)) - **dev:** consolidate moduleURL to file path utilities ([#​23828](vitejs/vite#23828)) ([df7b40e](vitejs/vite@df7b40e)) - **dev:** separate import resolution from URL conversion ([#​23791](vitejs/vite#23791)) ([6116689](vitejs/vite@6116689)) - **dev:** share ModuleURL and BrowserURL conversions ([#​23790](vitejs/vite#23790)) ([446954c](vitejs/vite@446954c)) - **dev:** use ModuleURLs throughout HTML transforms ([#​23815](vitejs/vite#23815)) ([a162990](vitejs/vite@a162990)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xODEuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE4MS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Serve sourcemap for bundled-dev for forwarded error stacks