[▲ Vercel Community](/) · [Categories](/categories) · [Latest](/latest) · [Top](/top) · [Live](/live)

[Help](/c/help/9)

# Static build skipped – only serverless function deployed

58 views · 0 likes · 3 posts


Jasonstolworthy (@jasonstolworthy) · 2025-11-10



**Current vs Expected Behavior**

I’ve spent \~12 hours trying to get my Vite frontend and Express backend (monorepo) to deploy on Vercel. Every production deploy runs the Vite build (logs show build/index.html, build/assets/...), but the resulting deployment only contains the serverless lambda. vercel inspect shows two λ api/serverless/index.ts entries and zero static builds, so / always returns Vercel’s default 404 even though /api/apps works. I expect / to serve my SPA (frontend/build/index.html).

**Code / Configuration / Repro Steps**

1. Monorepo layout:

   `api/        (Express + Prisma serverless)`
   `` frontend/   (Vite SPA, `npm run build` → `frontend/build`) ``
   `vercel.json`

2. vercel.json:

   `{`
   `  "version": 2,`
   `  "builds": [`
   `    { "src": "api/serverless/index.ts", "use": "@vercel/node" },`
   `    {`
   `      "src": "frontend/package.json",`
   `      "use": "@vercel/static-build",`
   `      "config": { "distDir": "build", "buildCommand": "npm run build" }`
   `    }`
   `  ],`
   `  "routes": [`
   `    { "src": "/api/(.*)", "dest": "api/serverless/index.ts" },`
   `    { "handle": "filesystem" },`
   `    { "src": "/(.*)", "dest": "/index.html" }`
   `  ]`
   `}`

3. frontend/package.json:

   `{`
   `  "scripts": {`
   `    "prebuild": "npm run sdk:gen",`
   `    "build": "vite build"`
   `  }`
   `}`

4. Root directory in Vercel settings is blank and “Include files outside root” is disabled. Repo is connected via Git. Deploy command is vercel --prod --yes from a clean clone.

5. Build logs show Vite producing build/index.html, build/assets/index-\*.js/css. No errors.

6. But vercel inspect https://aihomebrewapps-pn7kxu1gn-jason-stolworthys-projects-ecf26116.vercel.app (and every other deployment) shows only:

   `Builds:`
   `  ┌ . [0ms]`
   `  ├── λ api/serverless/index.ts (17.31MB) [iad1]`
   `  └── λ api/serverless/index.ts (17.31MB) [iad1]`

   No static build, no index.html.

**Project Info**

* Project: aihomebrewapps (project id prj_zjkJfhyzsdZznlKuolNGMeZm2b8j)

* Frameworks: Express (serverless), Vite SPA

* Environment: Production (vercel --prod --yes), Hobby account

* Repo: github.com/jasonstolworthy/aihomebrew

* Custom domain: www.aihomebrew.com

* Deployment IDs with this issue: dpl_FVcBZSpcP6GPoShNDmN3Q6qNtuNy, dpl_EZt5hcz8PNrakytcfuP2N5R51bPp, dpl_FaykbUXTtuayVTtEq3PceJV9eHAG, dpl_FaykbUXTtuayVTtEq3PceJV9eHAG, dpl_2GV76JAF2wjHdpazSEQDTGYUkXLf, etc.

**Why I’m Stuck**

I’ve triple-checked vercel.json, rebuilt locally, toggled root-dir settings, re-linked, re-cloned, aliased multiple deployment URLs—everything. The Vite build runs but Vercel drops the output, so my domain will never serve the SPA. I’m losing it at this point. 😅

Has anyone seen @vercel/static-build silently skip copying its output even though the build succeeds? I just need the static files to land in .vercel/output/static so the catch-all route works. Happy to share full logs or grant access. Any ideas appreciated!


system (@system) · 2025-11-10

There's another community post with 404 debugging tips that might be helpful. Please give these solutions a try and let us know how it goes.

https://community.vercel.com/t/debugging-404-errors/437

A human should be around soon to offer more advice. But you can also get helpful information quickly by asking [v0](https://v0.dev/).

If you're having trouble deploying an Express app, this guide can help.

https://vercel.com/guides/using-express-with-vercel

You can also ask [v0](https://v0.dev/) for suggestions tailored to your own project setup.


system (@system) · 2026-01-20

Hi @jasonstolworthy! 🙂

We haven't heard back from you. If you're still stuck, feel free to share any updates, logs, or additional context that might help us assist you better!