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
4 changes: 3 additions & 1 deletion .changeset/pre.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"vite-plugin-solid": "3.0.0-next.2"
},
"changesets": [
"bump-solid-beta-21",
"clean-lazy-entries",
"client-manifest-outdir",
"compiler-package-rename",
Expand All @@ -22,6 +23,7 @@
"server-functions-default-runtime",
"server-functions-turnkey",
"six-lions-joke",
"true-boxes-arrive"
"true-boxes-arrive",
"turnkey-ssr"
]
}
40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,45 @@
# Changelog

## 3.0.0-next.14

### Patch Changes

- b2b9979: update to solid 2.0.0-beta.21 and @dom-expressions/compiler 0.50.0-next.24
- 5828a6e: Turnkey SSR: the object form of the `ssr` option (even empty: `ssr: {}`)
adds a serving layer on top of the SSR transforms so a plain Vite app gets
streaming server-side rendering with zero wiring — no entry files, no
index.html, no dev server script (requires Vite 6+; `ssr: true` keeps the
transform-only behavior unchanged).

- Dev: a middleware on the Vite dev server streams the rendered app for
HTML-accepting GET requests through the SSR environment, scoping each
request with `provideRequestEvent` and injecting the Vite client and the
dev style patch into `<head>`; SSR errors flow (stack-fixed) to Vite's
error page with the overlay. `vite` is the whole dev story.
- Build: a plain `vite build` produces both bundles via the
environments/builder API — client assets and manifest to `dist/client`,
the server bundle to `dist/server/server.js` (`vite build --app` and the
classic two-step `vite build` + `vite build --ssr` also work).
- Prod: the server bundle's entry is the new `virtual:solid-ssr-handler`,
whose `handleRequest(request)` export maps a web-standard `Request` to a
streamed `Response` — adapter-agnostic, one line to mount on any server.
Hashed client assets are resolved through `virtual:solid-manifest`.
- Entries are conventional with escape hatches, resolved in order: explicit
`ssr.entryServer` / `ssr.entryClient`; conventional `src/entry-server.*` /
`src/entry-client.*` (the server entry exports
`render(request?, context?)`; authored `/src/entry-client.tsx` script
references are rewritten to the hashed asset in prod); else both entries
are generated from a root component (`ssr.app`, default `src/App.*`)
wrapped in a document shell (`ssr.document`, default `src/Document.*`,
else a built-in one).
- With `serverFunctions` enabled the two compose: the dev server-function
middleware runs ahead of SSR, and the production `handleRequest` serves
the endpoint before rendering.
- Server-function registration robustness: the SSR build now merges the
client build's persisted manifest at manifest load time as well, so
builder-mode (single-invocation) builds keep registrations for functions
only client code references.

## 3.0.0-next.13

### Patch 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": "vite-plugin-solid",
"version": "3.0.0-next.13",
"version": "3.0.0-next.14",
"description": "solid-js integration plugin for vite 3/4/5/6/7",
"type": "module",
"files": [
Expand Down