Skip to content

Version Packages (next) - #378

Merged
ryansolid merged 1 commit into
nextfrom
changeset-release/next
Sep 27, 2026
Merged

ryansolid merged 1 commit into
nextfrom
changeset-release/next

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to next, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

next is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on next.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

@solidjs/vite-plugin@3.0.0-next.46

Patch Changes

  • da7c347: Node floor and a signals dedupe. engines.node is now >=22.12.0 (was ^20.19.0 || >=22.12.0), matching the solid-js, @solidjs/web and @solidjs/signals 2.0 runtime packages, which have been ESM-only with that floor since rc.8; the README says the same. Under serve, @solidjs/signals joins solid-js and @solidjs/web in resolve.dedupe when the app root can reach a copy of it (node_modules/@solidjs/signals, walking up — an npm-style hoist or a direct dependency): @solidjs/diagnostics/browser and solid-js/attribution import the signals core directly, so a nested/duplicated install yielded a second engine beside the one solid-js loads. The entry is gated on the root copy because resolve.dedupe resolves the listed package from the root and Vite's Node-side resolver (fetchModule for externalized SSR imports, and the externalize decision) has no importer fallback when that misses — under pnpm's isolated layout, where signals exists only as solid-js's transitive dependency, an unconditional entry turned import "@solidjs/signals" from the inlined solid-js into ERR_MODULE_NOT_FOUND once anything externalized it (vitefu does, when a semi-framework package such as @solidjs/diagnostics lists it under dependencies). With no root copy there is nothing to dedupe to, so the gate loses nothing. Signals does not join optimizeDeps.include: the optimizer already reaches it through solid-js, and an include entry that doesn't resolve from the root warns on every start.
  • d6eb3e9: Chrome Performance panel tracks on by default under vite dev. New performanceTracks option (boolean | PerformanceTracksOptions, default true): the plugin injects a client module that calls @solidjs/web/performance-tracks' enablePerformanceTracks() ahead of the app's entry — a <head> module script for index.html apps, the first import of the (generated or authored) client entry in start mode — so hydration and the first interaction land on the timeline without the app enabling the tracks itself. An object passes the adapter's options through (minMs, rich, attribution, serialized into the module); false opts out. Dev serve only: never on vite build (dev: true and observe builds included), preview, or in test mode. The dev server already writes its Server-Timing metrics, which the tracks read back. Skipped with a startup warning if the installed @solidjs/web lacks the ./performance-tracks subpath.
  • 94f1878: Fix vite dev failing in dependency optimization for apps using a Solid library that ships build-time code in the same package (vite dev: semi-framework crawl pre-bundles a library's node-only dependencies (@yak/solid > @swc/core) since next.44 #375). Since the semi-framework classification landed (any package with solid-js / @solidjs/web in dependencies or peerDependencies is ssr.noExternal so it shares the app's runtime copy), vitefu's crawl also deep-included every CJS dependency of such a package into the browser's optimizeDeps.include, exactly as it does for framework packages. For @yak/solid that is @swc/core, and rolldown failed on its native .node binding (UNLOADABLE_DEPENDENCY … stream did not contain valid UTF-8) before the dev server served a page. Sharing the runtime needs nothing pre-bundled, so include chains that pass through a semi-framework package are dropped; a browser-side CJS dependency of one is discovered and optimized on first use, as before the package was classified. Framework packages (a solid export condition) keep vitefu's full treatment.

@github-actions
github-actions Bot force-pushed the changeset-release/next branch from b67ff77 to 8ea38ce Compare September 27, 2026 09:50
@github-actions
github-actions Bot force-pushed the changeset-release/next branch from 8ea38ce to b8ec7b9 Compare September 27, 2026 10:16
@ryansolid
ryansolid merged commit 52d93eb into next Sep 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant