Недавно столкнулся с интересным багом в Next.js. Если на странице not-found
делать навигацию через router.push(pathname)
, теряются все переменные окружения, которые мы инициализируем через библиотеку next-runtime-env
(значение window.__ENV
становится undefined
).
В проекте мы используем next-runtime-env
, так как придерживаемся подхода Build once, deploy many — это позволяет держать один Docker-образ, в который при запуске прокидываются нужные переменные окружения. Next.js из коробки не поддерживает такое поведение, ведь он хочет собирать env-переменные на этапе сборки приложения.