Skip to content
Latchkey

vercel deploy --prod: Ship to Production from CI

Running vercel with no subcommand deploys the current directory; vercel --prod promotes that deployment to the production domain.

The Vercel CLI deploys whatever is in the working directory. In CI you skip the dashboard build by deploying a prebuilt output and passing a token so nothing prompts.

What it does

vercel uploads the project and triggers a build on Vercel, printing a unique preview URL. vercel --prod aliases the result to the production domain. With --prebuilt it deploys a local .vercel/output produced by vercel build instead of building on Vercel.

Common usage

Terminal
vercel deploy --prod --token "$VERCEL_TOKEN" --yes
# build locally, then deploy the prebuilt output
vercel build --prod --token "$VERCEL_TOKEN"
vercel deploy --prebuilt --prod --token "$VERCEL_TOKEN" --yes

Options

FlagWhat it does
--prodDeploy to production (alias to the production domain)
--token <t>Authenticate non-interactively with an access token
--yesSkip all confirmation prompts (assume yes)
--prebuiltDeploy a local .vercel/output from vercel build
--env KEY=valSet a build-time env var for this deploy
--scope <team>Deploy under a specific team slug

In CI

Pass --token "$VERCEL_TOKEN" and --yes on every invocation so the CLI never waits for input. Set VERCEL_ORG_ID and VERCEL_PROJECT_ID as env vars (from .vercel/project.json) so the deploy targets the right project without an interactive link step.

Common errors in CI

"Error: No existing credentials found. Please run vercel login" means no token was supplied; pass --token or set VERCEL_TOKEN. "Error: Your codebase isn't linked to a project on Vercel" means VERCEL_ORG_ID and VERCEL_PROJECT_ID are missing; set both. "Error: The specified token is not valid" means an expired or wrong token.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →