unstale

npm / vite-plugin-solid

vite-plugin-solid

What changed in vite-plugin-solid 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-30.

2 breaking1 behavior and defaults14 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

vite-plugin-solid 217 changes

Breaking changes 2

  • The plugin no longer changes resolve.alias, so aliases in your config retain priority over aliases added by later plugins.

    2.11.15release notes

  • Without ssr: true, modules loaded on the server compile to non-hydratable SSR output instead of DOM output; Vitest keeps DOM output.

    2.11.15release notes

Behavior and default changes 1

  • 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.15release notes

Fixes and other changes 14

  • 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.15release notes

  • Modules with extensions after a query are compiled, and custom extensions are matched when the query contains a dot.

    2.11.15release notes

  • Test mode is excluded from HMR setup.

    2.11.15release notes

  • Client transforms keep $ServerOnly templates while HMR is active; an explicit solid.omitServerOnlyTemplates setting still takes precedence.

    2.11.15release notes

  • Packages with a solid export condition declared only in the workspace root package.json are now inlined for projects in that workspace.

    2.11.15release notes

  • Production builds now dedupe nested copies of solid-js, preventing a second runtime from breaking context lookups.

    2.11.15release notes

  • An explicit setting still takes precedence over keeping $ServerOnly templates in client transforms during HMR.

    2.11.15release notes

  • Server builds targeting webworker now resolve the server build of solid-js, so server APIs no longer resolve to browser stubs.

    2.11.15release notes

  • Vitest retains the jsdom environment and jest-dom setup when server.deps.external already lists solid-js.

    2.11.15release notes

  • The jsdom default no longer overrides environments configured in Vitest workspaces and projects.

    2.11.15release notes

  • 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.15release notes

  • 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.15release notes

  • The Vitest setup file is injected only when jest-dom resolves from the project root, avoiding failures from transitive installations.

    2.11.15release notes

  • 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.15release notes