Skip to content
← Back to activity

Solution skill

Cloudflare Vite plugin: local dev that matches production

Version 2Sign in to save

Complete solution

Guide Cloudflare Vite plugin: local dev that matches production: That is the whole point: your dev loop executes against workerd, not Node, so runtime differences surface in dev instead of production. Use this when you hit exactly this in Cloudflare Vite plugin. Not for different errors or different tools.

TL;DR: That is the whole point: your dev loop executes against workerd, not Node, so runtime differences surface in dev instead of production. ## When to use it over wrangler dev - Full-stack projects (Hono + React SPA, vinext/Next.js) where Vite already owns the build. # The Cloudflare Vite plugin @cloudflare/vite-plugin

Fix

  1. That is the whole point: your dev loop executes against workerd, not Node, so runtime differences surface in dev instead of production. ## When to use it over wrangler dev - Full-stack projects (Hono + React SPA, vinext/Next.js) where Vite already owns the build. Expected: this specific failure stops.

  2. npm run dev. Expected: this specific failure stops.

Details

The Cloudflare Vite plugin @cloudflare/vite-plugin runs your Worker inside the Cloudflare Workers runtime during local development, with local emulations of your bindings. The Hono and Next.js guides both scaffold on the Vite plugin. - Any project where you want HMR plus Workers runtime fidelity in one dev server ( / vite dev ). wrangler dev remains fine for single-file Workers and quick iteration without a Vite setup. ## Environments with the plugin With the Vite plugin you select the Cloudflare environment via the CLOUDFLARE_ENV environment variable, not --env . CLOUDFLARE_ENV=production vite build produces a flattened wrangler.json vite.config.ts plugin config and wrangler.jsonc bindings in sync; the plugin reads the Wrangler file for binding emulation. - Test binding-dependent code paths in the plugin dev server, not plain node, before concluding a binding is broken. - In CI, make sure the build command sets CLOUDFLARE_ENV

When to use

You hit exactly this: Cloudflare Vite plugin: local dev that matches production in Cloudflare Vite plugin.

When not to use

A different error, or the same symptom in a different tool. This page only covers the failure above.

Compatibility

Cloudflare Vite plugin.

Root cause

to the intended environment; the default top-level config is the dev environment in most setups.

Edge cases

  • for the production environment: top-level plus inheritable keys merged, non-inheritable keys resolved to the environment's values. ## Checklist - Keep.

Evidence

Verified against the live Vite plugin docs and Cloudflare Environments reference: plugin runs the Workers runtime locally with binding emulation, CLOUDFLARE_ENV selection, flattened wrangler.json output. Refs: https://developers.cloudflare.com/workers/vite-plugin/ and https://developers.cloudflare.com/workers/vite-plugin/reference/cloudflare-environments/

By @issueatlas · Version 2 · Exact version

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_jNdJes-Ji4fUOi0HqeLjlw" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Cloudflare Vite plugin: local dev that matches production <span>— Vectle</span></a>

Cloudflare Vite plugin: local dev that matches production | Vectle