Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .changeset/pre.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,11 @@
"plugin-package-rename",
"production-error-boundary",
"protect-configured-entry-chunks",
"rc10-live-address-preview-passthrough-prebundle",
"reject-prefixed-server-env-keys",
"remove-client-manifest-virtual",
"response-head-middleware-preview",
"ride-solid-rc-10",
"ride-solid-rc-9",
"root-relative-filter-globs",
"sc-bootstrap-before-hydration-data",
Expand All @@ -98,6 +100,7 @@
"server-functions-turnkey",
"six-lions-joke",
"solid-compiler-packages",
"source-names",
"ssr-inline-solid-consumers",
"start-css-filter",
"start-env-typed",
Expand All @@ -116,6 +119,7 @@
"vite8-scan-jsx-classic",
"vitest-browser-mode-no-jsdom-default",
"vitest-client-posture",
"vitest-server-posture-opt-out"
"vitest-server-posture-opt-out",
"webworker-async-hooks-warning"
]
}
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Changelog

## 3.0.0-next.45

### Patch Changes

- e40e2c4: Follow-ups to riding Solid 2.0.0-rc.10. The server-function dev middleware reads the id out of the runtime's third address shape, `<endpoint>/live/<id>` (a `live` loop's connection), the way it already did for `<endpoint>/data/<id>` — mirroring the runtime's `parseServerFunctionAddress`, one kind segment at most — so a live function whose module nothing has imported server-side yet is loaded on demand and the first call resolves instead of the runtime answering `404 Unknown server function`. `vite preview` passes `text/event-stream` responses and everything under the server-function mount through its compression middleware as `content-encoding: identity`, as it already did for `text/html`: the middleware compresses from a ≥1KiB first write and then holds small writes in zlib's buffer, which would leave a live event stream's events (and the streaming codec's chunks) undelivered while the connection stays open. Under `serve`, `solid-js/attribution` and `@solidjs/web/performance-tracks` join `optimizeDeps.include`, so a consumer the dependency scanner never crawls (a linked package, a `solid`-condition package vitefu excluded) importing one mid-session no longer triggers a late discovery → re-optimize → a second `@solidjs/signals` core beside the one `solid-js` was bundled with.
- 4134665: Require solid-js / @solidjs/web 2.0.0-rc.10 (peer floor) and compile with @solidjs/compiler / @solidjs/babel-plugin rc.10 — runtime and compiler move in lockstep. rc.10 is the release the `sourceNames` work rides on: the compilers rename `componentNames` to `sourceNames` (`@solidjs/compiler` rejects the old option, so a mismatched pair fails loudly), add the `bindings` kind whose trailing `{ name }` / tag arguments on `effect`/`insert`/`spread` only the rc.10 `@solidjs/web` reads, ship the standalone `transformSourceNames` pass behind `sourceNames.primitives`, and default their own `sourceNames` to `dev`. The plugin keeps passing its resolved value explicitly (`false` when every JSX kind is off), so its posture table — not the compilers' default — decides, and `solid.sourceNames: false` stays an opt-out under `vite dev`.
- e9afe8a: Source names on by default in dev and under `observe`: the compiler option `componentNames` is now `sourceNames` and covers components, compiled binding effects (`span.textContent`, `div.children`), and primitives. Component and binding names are the JSX compiler's `sourceNames` option, passed to whichever backend compiles the JSX. Primitives are named by the native compiler's standalone `transformSourceNames` pass — `createSignal(0)` declared as `count` becomes `createSignal(0, { name: "count" })`, `createCounter.value` inside a composed primitive — which the plugin runs ahead of the JSX transform and alone on plain `.ts`/`.js` modules (outside `node_modules`), for babel apps as well, so attribution chains, diagnostics owner paths, and the Chrome performance tracks read source identifiers instead of `signal` / `computed` / `effect`. Every kind defaults to on whenever the plugin compiles with `dev` (`vite dev`, or `dev: true`) or for `observe` builds, and to off for production builds, whose output is unchanged. `solid.sourceNames: false` opts out of every kind (in dev too — the plugin always passes the resolved value, so the compilers' own dev default does not re-enable it), `true` forces every kind on, and the object form `{ components?, bindings?, primitives? }` sets kinds individually with the rest at the posture default. Requires the `@solidjs/compiler` release carrying `sourceNames` and `transformSourceNames` (2.0.0-rc.10); on an older compiler the primitives pass is skipped with a one-time warning.
- de42b22: Warn at build time when the server build targets a worker runtime (`ssr.target: 'webworker'`) and the plugin generates server code — SSR or client start mode, or `serverFunctions` on its own. That code imports `@solidjs/web/storage`, the one Solid module that needs `node:async_hooks` (`AsyncLocalStorage` keeps the request event live across `await`s; there is no sync-scope fallback), so on a worker without Node compat the deploy failed with a bare `No such module "node:async_hooks"` (solidjs/solid#3597, Shopify Oxygen — whose Vite plugin sets the webworker target). The warning names the requirement and both fixes: a `compatibility_date` of 2026-08-04 or later (Cloudflare enables `nodejs_compat` by default from that date, and Oxygen accepts the same date), or the `nodejs_compat` flag. It is emitted once per server build, from the `ssr` environment's `buildStart` (the default builder resolves the config once per environment, so a config-time warning would repeat), and never in dev, where the ssr environment runs in Node. No new option; the condition is the resolved `ssr.target`.

## 3.0.0-next.44

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@solidjs/vite-plugin",
"version": "3.0.0-next.44",
"version": "3.0.0-next.45",
"description": "solid-js integration plugin for Vite",
"type": "module",
"engines": {
Expand Down