Files
vercel__workflow/.changeset/web-vercel-preset.md
Nathan Rajlich 45d1eb2340 web: configure vercelPreset() for Vercel deployments (#1815)
* web: configure vercelPreset() for Vercel deployments

Enables per-route bundle splitting, function-level configuration, and an
accurate Deployment Summary for the packages/web Vercel deployment.

Gated on WORKFLOW_WEB_VERCEL_BUILD (rather than the ambient VERCEL var)
so that the standard build layout consumed by server.js (self-hosted
deployments and the CLI's in-process server via @workflow/web/server) is
still produced when the package is packed as a tarball by the docs
Vercel deployment. Existing VERCEL-based checks in vite.config.ts have
been migrated to this same variable for consistency.

* web: allow WORKFLOW_WEB_VERCEL_BUILD through Turborepo

Turborepo strips environment variables not declared in turbo.json, which
prevented WORKFLOW_WEB_VERCEL_BUILD (set on the Vercel project) from
reaching the build. Declare it in the env list and also include the
.vercel/ directory (where the preset writes react-router-build-result.json)
in the build outputs.

* web: narrow Turbo output to react-router-build-result.json

* web: address PR review feedback

- Check WORKFLOW_WEB_VERCEL_BUILD === '1' explicitly (rejects '0', 'false',
  etc.) in both react-router.config.ts and vite.config.ts
- Use double-quoted package name in changeset frontmatter to match the
  repo's dominant convention
2026-05-04 10:04:21 +00:00

868 B

@workflow/web
@workflow/web
patch

Configure vercelPreset() from @vercel/react-router/vite in react-router.config.ts when building the packages/web project for the Vercel deployment, enabling per-route bundle splitting, function-level configuration, and an accurate Deployment Summary.

The preset is gated on a new WORKFLOW_WEB_VERCEL_BUILD environment variable (rather than the ambient VERCEL var) so that the standard build layout consumed by server.js (self-hosted deployments and the CLI's in-process server via @workflow/web/server) is still produced when the package is packed as a tarball by the docs Vercel deployment. Set WORKFLOW_WEB_VERCEL_BUILD=1 in the web Vercel project's environment variables to enable the preset there. The existing VERCEL-based checks in vite.config.ts have been migrated to this same variable for consistency.