Skip to content

solid start alpha running with deno#2153

Open
ashtonjurgens wants to merge 3 commits into
solidjs:mainfrom
ashtonjurgens:fix-dev-server-deno
Open

solid start alpha running with deno#2153
ashtonjurgens wants to merge 3 commits into
solidjs:mainfrom
ashtonjurgens:fix-dev-server-deno

Conversation

@ashtonjurgens
Copy link
Copy Markdown

When trying to get solid start alpha running with deno, I encountered a few problems. This is an informational PR of what I had to change to get things running. I can't guarantee nothing has been broken, (especially with 3efff0c) which is why I'm calling it an informational PR.

There are 3 commits (all very small), and each commit has a thorough message to explain the change.

The manifest plugin's resolveId hook did not intercept virtual module URLs
starting with /@manifest/. When the dev SSR manifest performed a dynamic
import like:

  import('/@manifest/ssr/1745693440524/assets?id=./src/entry-client.tsx')

Vite called resolveId, which returned undefined for these paths. Vite then
fell through to its default filesystem resolver, stripped the query string,
and attempted to load a non-existent file at:

  /@manifest/ssr/1745693440524/assets

The load hook was correctly implemented to handle /@manifest IDs (it parsed
the query string, walked the module graph for CSS dependencies, and returned
inline style tags), but it was never reached because resolveId failed first.

Fix: add an early return in resolveId for any ID starting with /@manifest/,
allowing the virtual URL to pass through to the load hook unchanged.
…hang

The load hook for the "solid-start:server-fn-manifest" virtual module used a
Debouncer that delayed resolution by 1 second (setTimeout). During production
builds (Rollup), this timer never fires before Rollup exits, causing:

  Unexpected early exit. This happens when Promises returned by plugins
  cannot resolve. Unfinished hook action(s) on exit:
  (solid-start:server-functions/preload) load "solid-start:server-fn-manifest"

The Debouncer was designed for dev-mode HMR batching — deferring regeneration
of the manifest when multiple files change in quick succession. However, the
compiler plugin already handles invalidation via invalidateModules(), which
re-triggers the load hook when server function files change. The Debouncer
was therefore redundant even in dev mode.

Fix: return the generated import statements synchronously from the load hook.
The manifest set is already populated by the time load runs (the compiler
plugin's transform hook runs first during both dev and build), so there is no
need to wait.
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Jun 1, 2026

⚠️ No Changeset found

Latest commit: 3efff0c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@netlify
Copy link
Copy Markdown

netlify Bot commented Jun 1, 2026

Deploy Preview for solid-start-landing-page ready!

Name Link
🔨 Latest commit 3efff0c
🔍 Latest deploy log https://app.netlify.com/projects/solid-start-landing-page/deploys/6a1d9b3adcbb1400089cdaed
😎 Deploy Preview https://deploy-preview-2153--solid-start-landing-page.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented Jun 1, 2026

Open in StackBlitz

npm i https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2153
npm i https://pkg.pr.new/solidjs/solid-start/@solidjs/vite-plugin-nitro-2@2153

commit: 3efff0c

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