Skip to content

fix: support resolving top-level input option with plugins - #23101

Merged
sapphi-red merged 2 commits into
mainfrom
fix/support-resolving-top-level-input-option-with-plugins
Jul 30, 2026
Merged

fix: support resolving top-level input option with plugins#23101
sapphi-red merged 2 commits into
mainfrom
fix/support-resolving-top-level-input-option-with-plugins

Conversation

@sapphi-red

@sapphi-red sapphi-red commented Jul 29, 2026

Copy link
Copy Markdown
Member

The top-level input option was always resolved from the root. But that makes it impossible to specify a virtual module.

This PR fixes that by removing the resolution that happened in resolveConfig.

refs #22642, #23035

@sapphi-red sapphi-red added this to the 8.2 milestone Jul 29, 2026
@sapphi-red sapphi-red added the p3-minor-bug An edge case that only affects very specific usage (priority) label Jul 29, 2026
@sapphi-red
sapphi-red marked this pull request as ready for review July 29, 2026 08:22
@sapphi-red

Copy link
Copy Markdown
Member Author

/ecosystem-ci run

@pkg-pr-new

pkg-pr-new Bot commented Jul 29, 2026

Copy link
Copy Markdown

Open in StackBlitz

@vitejs/plugin-legacy

pnpm add https://pkg.pr.new/@vitejs/plugin-legacy@23101 -D
npm i https://pkg.pr.new/@vitejs/plugin-legacy@23101 -D
yarn add https://pkg.pr.new/@vitejs/plugin-legacy@23101.tgz -D

vite

pnpm add https://pkg.pr.new/vite@23101 -D
npm i https://pkg.pr.new/vite@23101 -D
yarn add https://pkg.pr.new/vite@23101.tgz -D

commit: 520b823

@vite-ecosystem-ci

Copy link
Copy Markdown

📝 Ran ecosystem CI on ff344dc: Open

suite result latest scheduled
tanstack-start ⏹️ cancelled ⏹️ cancelled
qwik failure failure
vitest failure failure
react-router failure failure
sveltekit failure failure
astro failure failure
vite-plugin-vue failure failure

analogjs, module-federation, laravel, vike, quasar, marko, storybook, vite-environment-examples, vite-setup-catalogue, vite-plugin-cloudflare, vite-plugin-pwa, vite-plugin-svelte, vite-plugin-react, nuxt, vite-plugin-rsc, vitepress, unocss, waku, vuepress

@sapphi-red
sapphi-red merged commit 41df81a into main Jul 30, 2026
33 checks passed
@sapphi-red
sapphi-red deleted the fix/support-resolving-top-level-input-option-with-plugins branch July 30, 2026 10:00
renovate Bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 1, 2026
| datasource | package | from  | to    |
| ---------- | ------- | ----- | ----- |
| npm        | vite    | 8.1.0 | 8.2.0 |


## [v8.2.0](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#820-2026-07-30)

##### Features

- add `input` to `server.fs.allow` ([#23035](vitejs/vite#23035)) ([95a3cda](vitejs/vite@95a3cda))
- **bundled-dev:** reload once after rebuild instead of via the fallback page ([#23106](vitejs/vite#23106)) ([b24381d](vitejs/vite@b24381d))
- **bundled-dev:** support worker file update accepted by HMR ([#23068](vitejs/vite#23068)) ([0d04351](vitejs/vite@0d04351))
- **config:** include column in config incompatibility location ([#23064](vitejs/vite#23064)) ([8a24572](vitejs/vite@8a24572))
- **dev:** resolve interface name for explicit host in network URLs ([#22965](vitejs/vite#22965)) ([3ac77d9](vitejs/vite@3ac77d9))

##### Bug Fixes

- **bundledDev:** print build errors to the terminal when an HMR update fails ([#23024](vitejs/vite#23024)) ([41c4658](vitejs/vite@41c4658))
- **deps:** update all non-major dependencies ([#23069](vitejs/vite#23069)) ([4c07b74](vitejs/vite@4c07b74))
- **hmr:** preserve environment snapshot during server restart ([#22992](vitejs/vite#22992)) ([b1186c3](vitejs/vite@b1186c3))
- **importAnalysis:** interop imports injected into optimized dep files by plugins ([#23029](vitejs/vite#23029)) ([8c2a87d](vitejs/vite@8c2a87d))
- **module-runner:** keep stack trace interception working when `Object.prototype` is frozen ([#23073](vitejs/vite#23073)) ([599c5b0](vitejs/vite@599c5b0))
- **server:** strip base in indexHtml module graph lookup ([#22932](vitejs/vite#22932)) ([fa005d1](vitejs/vite@fa005d1))
- support resolving top-level input option with plugins ([#23101](vitejs/vite#23101)) ([41df81a](vitejs/vite@41df81a))

##### Documentation

- **config:** correct cacheDir default fallback description ([#23060](vitejs/vite#23060)) ([aafa103](vitejs/vite@aafa103))

##### Tests

- config CJS module vars in ESM case ([#23010](vitejs/vite#23010)) ([d8cd388](vitejs/vite@d8cd388))


## [v8.1.5](https://github.com/vitejs/vite/releases/tag/v8.1.5)

Please refer to [CHANGELOG.md](https://github.com/vitejs/vite/blob/v8.1.5/packages/vite/CHANGELOG.md) for details.


## [v8.1.4](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-814-2026-07-09-small)

##### Features

- **legacy:** prefer oxc as minifier (fix [#21973](vitejs/vite#21973)) ([#22468](vitejs/vite#22468)) ([ab5dafa](vitejs/vite@ab5dafa))

##### Bug Fixes

- **build:** add workaround for building on stackblitz ([#22840](vitejs/vite#22840)) ([575c32c](vitejs/vite@575c32c))
- **build:** keep `import.meta.url` in preload function as-is ([#22839](vitejs/vite#22839)) ([f1f90ed](vitejs/vite@f1f90ed))
- **deps:** update all non-major dependencies ([#22865](vitejs/vite#22865)) ([d4295a9](vitejs/vite@d4295a9))
- **deps:** update rolldown-related dependencies ([#22866](vitejs/vite#22866)) ([7cf07e4](vitejs/vite@7cf07e4))
- **html:** avoid backtracking in import-only check ([#22848](vitejs/vite#22848)) ([b5868c0](vitejs/vite@b5868c0))
- **optimizer:** avoid optimizer run for transform request before init ([#22852](vitejs/vite#22852)) ([72a5e21](vitejs/vite@72a5e21))
- **ssr:** align named export function call stacktrace column with Node ([#22829](vitejs/vite#22829)) ([173a1b6](vitejs/vite@173a1b6))
- strip pure CSS chunk imports when chunkImportMap is enabled ([#22841](vitejs/vite#22841)) ([648bd04](vitejs/vite@648bd04))

##### Documentation

- fix incorrect `@default` for `server.cors` ([#22859](vitejs/vite#22859)) ([70435b2](vitejs/vite@70435b2))

##### Miscellaneous Chores

- **deps:** update dependency postcss-modules to v9 ([#22867](vitejs/vite#22867)) ([a9539d6](vitejs/vite@a9539d6))

##### Code Refactoring

- eliminate ineffectiveDynamicImport warn ([#22876](vitejs/vite#22876)) ([ea22fb3](vitejs/vite@ea22fb3))

##### Tests

- avoid warnings ([#22851](vitejs/vite#22851)) ([af21ab6](vitejs/vite@af21ab6))

##### Build System

- remove the custom onLog function ([#22878](vitejs/vite#22878)) ([2c4a217](vitejs/vite@2c4a217))
- replace deprecated `onwarn` with `onLog` ([#22741](vitejs/vite#22741)) ([c581b55](vitejs/vite@c581b55))


## [v8.1.3](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-813-2026-07-02-small)

##### Bug Fixes

- **css:** inject inlined CSS after the shebang line ([#22717](vitejs/vite#22717)) ([1534d36](vitejs/vite@1534d36))
- **deps:** bump `es-module-lexer` to 2.3.0 ([#22838](vitejs/vite#22838)) ([7103c3a](vitejs/vite@7103c3a))
- preload css for nested dynamic imports ([#22759](vitejs/vite#22759)) ([2c53054](vitejs/vite@2c53054))
- **ssr:** correct stacktrace column position for first line ([#22828](vitejs/vite#22828)) ([c4acd69](vitejs/vite@c4acd69))


## [v8.1.2](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-812-2026-06-30-small)

##### Bug Fixes

- **deps:** revert es-module-lexer to 2.1.0 ([#22827](vitejs/vite#22827)) ([0d3bd7c](vitejs/vite@0d3bd7c))
- restore, "fix: resolve pnpm .modules.yaml from workspace root instead of cwd ([#22757](vitejs/vite#22757))" ([#22825](vitejs/vite#22825)) ([efb98cc](vitejs/vite@efb98cc))
- revert, "fix: escape ids with multiple null bytes ([#22687](vitejs/vite#22687))" ([cccef55](vitejs/vite@cccef55))
- revert, "fix: resolve pnpm .modules.yaml from workspace root instead of cwd ([#22757](vitejs/vite#22757))" ([cf97711](vitejs/vite@cf97711))


## [v8.1.1](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-811-2026-06-30-small)

##### Features

- update dynamic import warning to link to Vite docs ([#22823](vitejs/vite#22823)) ([62bd7af](vitejs/vite@62bd7af))

##### Bug Fixes

- **bundled-dev:** avoid stack overflow on `import.meta.hot.invalidate()` ([#22797](vitejs/vite#22797)) ([709eb8e](vitejs/vite@709eb8e))
- **bundled-dev:** serve assets emitted during HMR/lazy compile ([#22745](vitejs/vite#22745)) ([5876b2c](vitejs/vite@5876b2c))
- **bundledDev:** skip plugin transform hooks for rolldown-lazy stub modules ([#22778](vitejs/vite#22778)) ([8f925e2](vitejs/vite@8f925e2))
- **css:** preserve dollar signs in external `@import` urls with lightningcss ([#22718](vitejs/vite#22718)) ([9fa7ab4](vitejs/vite@9fa7ab4))
- **css:** resolve tsconfig paths in CSS and Sass [@import](https://github.com/import) ([#22775](vitejs/vite#22775)) ([ef0b891](vitejs/vite@ef0b891))
- **deps:** update all non-major dependencies ([#22734](vitejs/vite#22734)) ([e635f49](vitejs/vite@e635f49))
- **deps:** update all non-major dependencies ([#22804](vitejs/vite#22804)) ([8837400](vitejs/vite@8837400))
- **deps:** update rolldown-related dependencies ([#22591](vitejs/vite#22591)) ([2ce6677](vitejs/vite@2ce6677))
- escape ids with multiple null bytes ([#22687](vitejs/vite#22687)) ([833fc30](vitejs/vite@833fc30))
- hide console window when running 'net use' on Windows ([#22698](vitejs/vite#22698)) ([92b63f2](vitejs/vite@92b63f2))
- ignore bundled config temp dir ([#22800](vitejs/vite#22800)) ([043a810](vitejs/vite@043a810))
- invert `esbuild.jsxSideEffects` when converting to `oxc.jsx.pure` ([#22809](vitejs/vite#22809)) ([33895ba](vitejs/vite@33895ba))
- **optimize-deps:** ignore `ERR_CLOSED_SERVER` in scanner ([#22784](vitejs/vite#22784)) ([085a0ab](vitejs/vite@085a0ab))
- **optimizer:** scanner should resolve `input` from `root` ([#22769](vitejs/vite#22769)) ([9722b07](vitejs/vite@9722b07))
- resolve pnpm .modules.yaml from workspace root instead of cwd ([#22757](vitejs/vite#22757)) ([2531ac7](vitejs/vite@2531ac7))
- return sourcemap field from some plugins that were lacking ([#22782](vitejs/vite#22782)) ([7e18bf8](vitejs/vite@7e18bf8))
- **server:** handle malformed URI in indexHtmlMiddleware ([#22781](vitejs/vite#22781)) ([84f5ccc](vitejs/vite@84f5ccc))

##### Miscellaneous Chores

- improve dependency optimizer messages ([#22549](vitejs/vite#22549)) ([092cb3b](vitejs/vite@092cb3b))

##### Code Refactoring

- **css:** remove lightningcss null byte bug workaround ([#22822](vitejs/vite#22822)) ([2dafd3b](vitejs/vite@2dafd3b))
- use pre-defined environments variable to avoid duplicate `Object.values` calls ([#22790](vitejs/vite#22790)) ([1113acf](vitejs/vite@1113acf))

##### Tests

- enable "manual chunk path" test and remove "worker.format error" test ([#22824](vitejs/vite#22824)) ([c088511](vitejs/vite@c088511))
renovate Bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 1, 2026
| datasource | package | from  | to    |
| ---------- | ------- | ----- | ----- |
| npm        | vite    | 8.1.0 | 8.2.0 |


## [v8.2.0](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#820-2026-07-30)

##### Features

- add `input` to `server.fs.allow` ([#23035](vitejs/vite#23035)) ([95a3cda](vitejs/vite@95a3cda))
- **bundled-dev:** reload once after rebuild instead of via the fallback page ([#23106](vitejs/vite#23106)) ([b24381d](vitejs/vite@b24381d))
- **bundled-dev:** support worker file update accepted by HMR ([#23068](vitejs/vite#23068)) ([0d04351](vitejs/vite@0d04351))
- **config:** include column in config incompatibility location ([#23064](vitejs/vite#23064)) ([8a24572](vitejs/vite@8a24572))
- **dev:** resolve interface name for explicit host in network URLs ([#22965](vitejs/vite#22965)) ([3ac77d9](vitejs/vite@3ac77d9))

##### Bug Fixes

- **bundledDev:** print build errors to the terminal when an HMR update fails ([#23024](vitejs/vite#23024)) ([41c4658](vitejs/vite@41c4658))
- **deps:** update all non-major dependencies ([#23069](vitejs/vite#23069)) ([4c07b74](vitejs/vite@4c07b74))
- **hmr:** preserve environment snapshot during server restart ([#22992](vitejs/vite#22992)) ([b1186c3](vitejs/vite@b1186c3))
- **importAnalysis:** interop imports injected into optimized dep files by plugins ([#23029](vitejs/vite#23029)) ([8c2a87d](vitejs/vite@8c2a87d))
- **module-runner:** keep stack trace interception working when `Object.prototype` is frozen ([#23073](vitejs/vite#23073)) ([599c5b0](vitejs/vite@599c5b0))
- **server:** strip base in indexHtml module graph lookup ([#22932](vitejs/vite#22932)) ([fa005d1](vitejs/vite@fa005d1))
- support resolving top-level input option with plugins ([#23101](vitejs/vite#23101)) ([41df81a](vitejs/vite@41df81a))

##### Documentation

- **config:** correct cacheDir default fallback description ([#23060](vitejs/vite#23060)) ([aafa103](vitejs/vite@aafa103))

##### Tests

- config CJS module vars in ESM case ([#23010](vitejs/vite#23010)) ([d8cd388](vitejs/vite@d8cd388))


## [v8.1.5](https://github.com/vitejs/vite/releases/tag/v8.1.5)

Please refer to [CHANGELOG.md](https://github.com/vitejs/vite/blob/v8.1.5/packages/vite/CHANGELOG.md) for details.


## [v8.1.4](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-814-2026-07-09-small)

##### Features

- **legacy:** prefer oxc as minifier (fix [#21973](vitejs/vite#21973)) ([#22468](vitejs/vite#22468)) ([ab5dafa](vitejs/vite@ab5dafa))

##### Bug Fixes

- **build:** add workaround for building on stackblitz ([#22840](vitejs/vite#22840)) ([575c32c](vitejs/vite@575c32c))
- **build:** keep `import.meta.url` in preload function as-is ([#22839](vitejs/vite#22839)) ([f1f90ed](vitejs/vite@f1f90ed))
- **deps:** update all non-major dependencies ([#22865](vitejs/vite#22865)) ([d4295a9](vitejs/vite@d4295a9))
- **deps:** update rolldown-related dependencies ([#22866](vitejs/vite#22866)) ([7cf07e4](vitejs/vite@7cf07e4))
- **html:** avoid backtracking in import-only check ([#22848](vitejs/vite#22848)) ([b5868c0](vitejs/vite@b5868c0))
- **optimizer:** avoid optimizer run for transform request before init ([#22852](vitejs/vite#22852)) ([72a5e21](vitejs/vite@72a5e21))
- **ssr:** align named export function call stacktrace column with Node ([#22829](vitejs/vite#22829)) ([173a1b6](vitejs/vite@173a1b6))
- strip pure CSS chunk imports when chunkImportMap is enabled ([#22841](vitejs/vite#22841)) ([648bd04](vitejs/vite@648bd04))

##### Documentation

- fix incorrect `@default` for `server.cors` ([#22859](vitejs/vite#22859)) ([70435b2](vitejs/vite@70435b2))

##### Miscellaneous Chores

- **deps:** update dependency postcss-modules to v9 ([#22867](vitejs/vite#22867)) ([a9539d6](vitejs/vite@a9539d6))

##### Code Refactoring

- eliminate ineffectiveDynamicImport warn ([#22876](vitejs/vite#22876)) ([ea22fb3](vitejs/vite@ea22fb3))

##### Tests

- avoid warnings ([#22851](vitejs/vite#22851)) ([af21ab6](vitejs/vite@af21ab6))

##### Build System

- remove the custom onLog function ([#22878](vitejs/vite#22878)) ([2c4a217](vitejs/vite@2c4a217))
- replace deprecated `onwarn` with `onLog` ([#22741](vitejs/vite#22741)) ([c581b55](vitejs/vite@c581b55))


## [v8.1.3](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-813-2026-07-02-small)

##### Bug Fixes

- **css:** inject inlined CSS after the shebang line ([#22717](vitejs/vite#22717)) ([1534d36](vitejs/vite@1534d36))
- **deps:** bump `es-module-lexer` to 2.3.0 ([#22838](vitejs/vite#22838)) ([7103c3a](vitejs/vite@7103c3a))
- preload css for nested dynamic imports ([#22759](vitejs/vite#22759)) ([2c53054](vitejs/vite@2c53054))
- **ssr:** correct stacktrace column position for first line ([#22828](vitejs/vite#22828)) ([c4acd69](vitejs/vite@c4acd69))


## [v8.1.2](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-812-2026-06-30-small)

##### Bug Fixes

- **deps:** revert es-module-lexer to 2.1.0 ([#22827](vitejs/vite#22827)) ([0d3bd7c](vitejs/vite@0d3bd7c))
- restore, "fix: resolve pnpm .modules.yaml from workspace root instead of cwd ([#22757](vitejs/vite#22757))" ([#22825](vitejs/vite#22825)) ([efb98cc](vitejs/vite@efb98cc))
- revert, "fix: escape ids with multiple null bytes ([#22687](vitejs/vite#22687))" ([cccef55](vitejs/vite@cccef55))
- revert, "fix: resolve pnpm .modules.yaml from workspace root instead of cwd ([#22757](vitejs/vite#22757))" ([cf97711](vitejs/vite@cf97711))


## [v8.1.1](https://github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-811-2026-06-30-small)

##### Features

- update dynamic import warning to link to Vite docs ([#22823](vitejs/vite#22823)) ([62bd7af](vitejs/vite@62bd7af))

##### Bug Fixes

- **bundled-dev:** avoid stack overflow on `import.meta.hot.invalidate()` ([#22797](vitejs/vite#22797)) ([709eb8e](vitejs/vite@709eb8e))
- **bundled-dev:** serve assets emitted during HMR/lazy compile ([#22745](vitejs/vite#22745)) ([5876b2c](vitejs/vite@5876b2c))
- **bundledDev:** skip plugin transform hooks for rolldown-lazy stub modules ([#22778](vitejs/vite#22778)) ([8f925e2](vitejs/vite@8f925e2))
- **css:** preserve dollar signs in external `@import` urls with lightningcss ([#22718](vitejs/vite#22718)) ([9fa7ab4](vitejs/vite@9fa7ab4))
- **css:** resolve tsconfig paths in CSS and Sass [@import](https://github.com/import) ([#22775](vitejs/vite#22775)) ([ef0b891](vitejs/vite@ef0b891))
- **deps:** update all non-major dependencies ([#22734](vitejs/vite#22734)) ([e635f49](vitejs/vite@e635f49))
- **deps:** update all non-major dependencies ([#22804](vitejs/vite#22804)) ([8837400](vitejs/vite@8837400))
- **deps:** update rolldown-related dependencies ([#22591](vitejs/vite#22591)) ([2ce6677](vitejs/vite@2ce6677))
- escape ids with multiple null bytes ([#22687](vitejs/vite#22687)) ([833fc30](vitejs/vite@833fc30))
- hide console window when running 'net use' on Windows ([#22698](vitejs/vite#22698)) ([92b63f2](vitejs/vite@92b63f2))
- ignore bundled config temp dir ([#22800](vitejs/vite#22800)) ([043a810](vitejs/vite@043a810))
- invert `esbuild.jsxSideEffects` when converting to `oxc.jsx.pure` ([#22809](vitejs/vite#22809)) ([33895ba](vitejs/vite@33895ba))
- **optimize-deps:** ignore `ERR_CLOSED_SERVER` in scanner ([#22784](vitejs/vite#22784)) ([085a0ab](vitejs/vite@085a0ab))
- **optimizer:** scanner should resolve `input` from `root` ([#22769](vitejs/vite#22769)) ([9722b07](vitejs/vite@9722b07))
- resolve pnpm .modules.yaml from workspace root instead of cwd ([#22757](vitejs/vite#22757)) ([2531ac7](vitejs/vite@2531ac7))
- return sourcemap field from some plugins that were lacking ([#22782](vitejs/vite#22782)) ([7e18bf8](vitejs/vite@7e18bf8))
- **server:** handle malformed URI in indexHtmlMiddleware ([#22781](vitejs/vite#22781)) ([84f5ccc](vitejs/vite@84f5ccc))

##### Miscellaneous Chores

- improve dependency optimizer messages ([#22549](vitejs/vite#22549)) ([092cb3b](vitejs/vite@092cb3b))

##### Code Refactoring

- **css:** remove lightningcss null byte bug workaround ([#22822](vitejs/vite#22822)) ([2dafd3b](vitejs/vite@2dafd3b))
- use pre-defined environments variable to avoid duplicate `Object.values` calls ([#22790](vitejs/vite#22790)) ([1113acf](vitejs/vite@1113acf))

##### Tests

- enable "manual chunk path" test and remove "worker.format error" test ([#22824](vitejs/vite#22824)) ([c088511](vitejs/vite@c088511))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

p3-minor-bug An edge case that only affects very specific usage (priority) trigger: preview

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant