The build-artifact cache is the one that caught me. My workflow cached the build output between runs, and a production deploy silently reused the staging build with staging API URLs baked in, because VITE_ values are sealed at build time. Now I cache node_modules only, never the build output, and treat every environment as its own fresh build. Reproducibility only works when the cache does not outlive its purpose.
Kamran Khan
Full-Stack Web Developer (React.js + Laravel) | Dashboards, SaaS Apps & Management Systems for Global Clients
The build-artifact cache is the one that caught me. My workflow cached the build output between runs, and a production deploy silently reused the staging build with staging API URLs baked in, because VITE_ values are sealed at build time. Now I cache node_modules only, never the build output, and treat every environment as its own fresh build. Reproducibility only works when the cache does not outlive its purpose.