Architectural Invariant Design: Vite 6 Environment API Cross-Runtime Module Boundary & AST Virtualization
Vite 6 Environment API Cross-Runtime Module Boundary & AST Virtualization defines an industrial-grade behavioral standard for frontend engineering. Enforces strict hermetic AST virtualization and module isolation across concurrent Browser, Edge Worker (WinterCG), and Node.js SSR runtime execution targets via the Vite 6 Environment API. Eliminates architectural leaks caused by legacy binary SSR assumptions and prevents cross-contamination of runtime-specific module graphs. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.
Hazard Analysis: What Breaks Without This Rule
The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:
| Failure Mode | AI Symptom (The Anti-Pattern) | Severity | Production Impact & Remedy |
|---|---|---|---|
| AI Hallucination & Deprecation Drift | Leaking Node.js Built-ins or Global Module Graph State into Edge and Client Runtimes via Legacy Binary SSR Assumptions | Critical | Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production. Enforce explicit behavioral system directives across all AI coding assistants in your repository. |
| Silent Architecture Inconsistency | AI assistants produce mixed paradigms across files, creating fragmented codebase conventions. | Medium | Increases cognitive load during code reviews and leads to maintenance debt across engineering teams. Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails. |
Step-by-Step Production Directives
Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:
Engineers MUST ALWAYS declare isolated runtime environments under `environments` (e.g., `client`, `ssr`, `edge`) in `vite.config.ts` rather than relying on legacy top-level `ssr` configuration flags.
Engineers MUST ALWAYS declare isolated runtime environments under `environments` (e.g., `client`, `ssr`, `edge`) in `vite.config.ts` rather than relying on legacy top-level `ssr` configuration flags.
Engineers MUST NOT invoke deprecated `server.ssrLoadModule(entry)` or `server.ssrFixStacktrace`
Engineers MUST NOT invoke deprecated `server.ssrLoadModule(entry)` or `server.ssrFixStacktrace`; instead, engineers MUST use `server.environments[envName].runner.import(entry)`.
Vite plugin authors MUST inspect `this.environment.name` inside unified hooks (`resolveId`, `load`, `transform`) to isolate AST transforms per target runtime, and MUST NEVER rely on closure-shared mutable state across environments.
Vite plugin authors MUST inspect `this.environment.name` inside unified hooks (`resolveId`, `load`, `transform`) to isolate AST transforms per target runtime, and MUST NEVER rely on closure-shared mutable state across environments.
Custom plugins MUST dispatch runtime-targeted events using `this.environment.hot.send()` instead of the global `server.hot.send()` to prevent cross-runtime HMR payload contamination.
Custom plugins MUST dispatch runtime-targeted events using `this.environment.hot.send()` instead of the global `server.hot.send()` to prevent cross-runtime HMR payload contamination.
Resolution conditions MUST be explicitly configured per environment (e.g., `conditions
Resolution conditions MUST be explicitly configured per environment (e.g., `conditions: ['worker', 'wintercg']` for edge targets, `conditions: ['node']` for Node SSR targets, and `conditions: ['browser']` for client targets) to guarantee hermetic AST virtualization.
Components and shared libraries NEVER import runtime-specific host modules (`node
Components and shared libraries NEVER import runtime-specific host modules (`node:fs`, `node:path`, `cloudflare:workers`) without runtime branch resolution guarded by environment module boundaries.
Frequently Asked Technical Questions
Common questions developers face when configuring AI coding assistants for this stack:
Q:Why is Vite 6 Environment API Cross-Runtime Module Boundary & AST Virtualization critical for AI coding assistants?
Enforces strict hermetic AST virtualization and module isolation across concurrent Browser, Edge Worker (WinterCG), and Node.js SSR runtime execution targets via the Vite 6 Environment API. Eliminates architectural leaks caused by legacy binary SSR assumptions and prevents cross-contamination of runtime-specific module graphs. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.
Q:How does adopting this rule prevent AI hallucinations?
This rule explicitly declares what the AI must avoid (Leaking Node.js Built-ins or Global Module Graph State into Edge and Client Runtimes via Legacy Binary SSR Assumptions) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.
Q:Which AI coding environments are supported?
This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).
Q:Can I combine this rule with other technology stacks?
Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.