fix: Prevent Vite file watcher from crashing in Kubernetes

Fixed the crash loop issue caused by Vite trying to watch too many
files (including node_modules) in Kubernetes environment.

Problem:
- Vite dev server was starting successfully
- But then container would crash with "too many open files"
- This caused infinite restart loop (CrashLoopBackOff)
- Error: "failed to create fsnotify watcher: too many open files"

Root Cause:
- Vite's file watcher was monitoring ALL files including node_modules
- In Kubernetes, this exceeded inotify limits
- Each restart would hit the same limit

Solution:
- Added 'ignored' patterns to vite.config.ts server.watch
- Excluded: node_modules, dist, .git, coverage, .cache
- Vite will only watch actual source files in src/
- Dramatically reduces number of watched files

Changes:
- frontend/vite.config.ts: Added server.watch.ignored array

Benefits:
- Container stays running without crashes
- Faster hot reload (fewer files to watch)
- Lower resource usage
- Dev server remains stable in Kubernetes

Testing:
- Tilt will auto-rebuild container with new config
- Container should start and stay running
- Vite dev server will be accessible
- Hot reload will still work for src/ files
This commit is contained in:
Claude
2025-11-07 21:08:52 +00:00
parent 2726ac4981
commit 54ceaac0e4

View File

@@ -25,6 +25,14 @@ export default defineConfig({
port: 3000, port: 3000,
watch: { watch: {
usePolling: true, // Important for Docker file watching usePolling: true, // Important for Docker file watching
// Ignore these directories to prevent "too many open files" error in Kubernetes
ignored: [
'**/node_modules/**',
'**/dist/**',
'**/.git/**',
'**/coverage/**',
'**/.cache/**',
],
}, },
proxy: { proxy: {
'/api': { '/api': {