Run on the nodesandbox runtime: harness toolchain, Hono server entry

The sandbox loads Vite's native tools as WASI (NAPI_RS_FORCE_WASI=error)
and only ships glue for rolldown 1.1.x. Vite 8.3 pulls rolldown 1.2.x,
whose binding needs emnapi 2.0 alpha, so boot failed with 'WASI binding
not found'. Match the runtime-host harness TanStack sample instead:

- Pin vite 8.1.3, rolldown + @rolldown/binding-wasm32-wasi 1.1.4,
  @vitejs/plugin-react 6.0.0, tailwindcss + @tailwindcss/vite 4.3.1
  (exact versions: the sandbox resolves package.json, not yarn.lock)
- Drop Nitro (it brings rolldown 1.2.x) and the Vercel config
- Hono now sits in src/server.ts, Start's server entry, routing /api/*
  ahead of start.fetch, as in the harness
- dev runs 'vite dev --host 0.0.0.0 --port 3000'; config is .mjs
- Await product recommendations in the loader to fix a hydration
  mismatch between the SSR skeleton and the settled client render

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Rami Bitar
2026-10-03 14:51:11 -04:00
co-authored by Claude Opus 5.5
parent 099ba454e0
commit e09bc0e1fe
11 changed files with 450 additions and 389 deletions
+7 -7
View File
@@ -4,9 +4,8 @@
"private": true,
"version": "0.0.0",
"scripts": {
"dev": "vite dev",
"dev": "vite dev --host 0.0.0.0 --port 3000",
"build": "vite build",
"start": "node .output/server/index.mjs",
"typecheck": "tsc --noEmit && hydrogen gql check"
},
"packageManager": "yarn@4.18.0+sha512.fcb8716fe7cd0eece141ffc18b92193a9df9204c1ba83189c288835223fc0bbe64af473bab0d5e9927a7daeb5caf2bb07eb2787cc9338ca040ea125f2a1f2f7e",
@@ -14,6 +13,7 @@
"@fontsource-variable/geist": "^5.3.0",
"@fontsource-variable/geist-mono": "^5.3.0",
"@remixicon/react": "^4.9.0",
"@rolldown/binding-wasm32-wasi": "1.1.4",
"@shopify/hydrogen": "0.0.0-preview-116d5d7-20260730141607",
"@tanstack/query-core": "^5.104.1",
"@tanstack/react-query": "^5.104.1",
@@ -27,21 +27,21 @@
"graphql": "^17.0.2",
"hono": "^4.13.12",
"lucide-react": "^0.562.0",
"nitro": "3.0.260903-beta",
"radix-ui": "^1.6.7",
"react": "^19.3.0",
"react-dom": "^19.3.0",
"rolldown": "1.1.4",
"tailwind-merge": "^3.7.0",
"zustand": "^5.0.15"
},
"devDependencies": {
"@tailwindcss/vite": "^4.3.3",
"@tailwindcss/vite": "4.3.1",
"@types/node": "^26.6.4",
"@types/react": "^19.3.0",
"@types/react-dom": "^19.3.0",
"@vitejs/plugin-react": "^6.1.1",
"tailwindcss": "^4.3.3",
"@vitejs/plugin-react": "6.0.0",
"tailwindcss": "4.3.1",
"typescript": "^5.7.3",
"vite": "^8.3.2"
"vite": "8.1.3"
}
}