import vinext from "vinext"; import { defineConfig } from "vite"; // Polling can be enabled for environments where file-system events are unavailable. const usePolling = process.env.CHOKIDAR_USEPOLLING === "true"; const localBindingConfig = { main: "./worker/index.ts", compatibility_flags: ["nodejs_compat"], }; export default defineConfig(async () => { // Keep Wrangler and Miniflare state project-local. These are non-secret tool // settings; application environment belongs in ignored `.env*` files. process.env.WRANGLER_WRITE_LOGS ??= "false"; process.env.WRANGLER_LOG_PATH ??= ".wrangler/logs"; process.env.MINIFLARE_REGISTRY_PATH ??= ".wrangler/registry"; // Wrangler snapshots its log path while the Cloudflare plugin is imported. const { cloudflare } = await import("@cloudflare/vite-plugin"); return { server: usePolling ? { watch: { useFsEvents: false, usePolling: true } } : undefined, plugins: [ vinext(), cloudflare({ viteEnvironment: { name: "rsc", childEnvironments: ["ssr"] }, config: localBindingConfig, }), ], }; });