Root cause of EasyPanel build failure: ENV NODE_ENV=production was set before 'npm install',
so npm skipped devDependencies (vite, @vitejs/plugin-vue) and 'npm run build' had no vite.
Fix: remove the early NODE_ENV=production (devDeps install for the build), use 'npm ci'
(deterministic, falls back to npm install). NODE_ENV only matters for Flask runtime which is set
at the CMD stage.