# What changed in vite-plugin-solid

> 17 changes in vite-plugin-solid 2 from its official release notes, upgrade guides and advisories: 2 breaking. Each one cited. Sources checked 2026-10-30. HTML: https://unstale.sh/npm/vite-plugin-solid/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## vite-plugin-solid 2

### Breaking changes

- The plugin no longer changes resolve.alias, so aliases in your config retain priority over aliases added by later plugins. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- Without ssr: true, modules loaded on the server compile to non-hydratable SSR output instead of DOM output; Vitest keeps DOM output. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)

### Behavior and default changes

- When the root config declares test.projects and leaves this option unset, the plugin sets it to false so each inline project resolves its own Vite config; explicit values are respected. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)

### Fixes and other changes

- In jsdom and happy-dom tests, Node no longer receives the browser condition for packages Vitest leaves external, allowing Node-only packages such as msw/node to load under Vitest 4 and later. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- Modules with extensions after a query are compiled, and custom extensions are matched when the query contains a dot. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- Test mode is excluded from HMR setup. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- Client transforms keep $ServerOnly templates while HMR is active; an explicit solid.omitServerOnlyTemplates setting still takes precedence. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- Packages with a solid export condition declared only in the workspace root package.json are now inlined for projects in that workspace. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- Production builds now dedupe nested copies of solid-js, preventing a second runtime from breaking context lookups. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- An explicit setting still takes precedence over keeping $ServerOnly templates in client transforms during HMR. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- Server builds targeting webworker now resolve the server build of solid-js, so server APIs no longer resolve to browser stubs. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- Vitest retains the jsdom environment and jest-dom setup when server.deps.external already lists solid-js. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- The jsdom default no longer overrides environments configured in Vitest workspaces and projects. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- In Vitest DOM tests without ssr, the plugin inlines solid-js and packages that import it without a solid export condition; user inline entries are merged, and externalizing solid-js opts out. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- For Vitest versions before 1.0 with jest-dom 6 or later, the plugin injects the ESM vitest entry as an absolute path to avoid loading the CommonJS entry. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- The Vitest setup file is injected only when jest-dom resolves from the project root, avoiding failures from transitive installations. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
- The scan transform uses the classic JSX runtime so .tsx files no longer cause a parse error that aborts dependency scanning and skips pre-bundling. (2.11.15) — [release notes](https://github.com/solidjs/solid-vite-plugin/releases/tag/vite-plugin-solid%402.11.15)
