Vite · VITE0004

Avoid object values in Vite define

Flags runtime object define in Vite define code before it leaks into runtime behavior.
VITE0004vite-doctor/viteconfigurationwarnNo fix
vite/define/no-runtime-object-definesrc/rule-packs/vite/rules/define.ts Upstream docs

Run this rule

pnpm vite-doctor . --framework vite --extends auto,vite/strict --rules vite/define/no-runtime-object-define

Why it matters

Runtime configuration has different server and client visibility. Using the framework API keeps environment data typed and scoped.

Remove runtime object define, or move it to the Vite runtime/API that owns that behavior.

Example

Avoid runtime object define

Before

export default defineConfig({
  define: {
    __APP_CONFIG__: { feature: true },
  },
})

After

export default defineConfig({
  define: {
    __FEATURE_ENABLED__: JSON.stringify(true),
  },
})
Copyright © 2026