В документации к Nuxt 3 написано, что он мапает переменные окружения в рантайме. То есть, у тебя в .env есть NUXT_VAR=111, если сделать в консоли SET NUXT_VAR=222, в приложении будет 222. Я считал, что под капотом работает либо прокси, либо watch какой-нибудь, а то и просто timeout, который следит за изменением process.env.
Но девопсы говорят, что это невозможно, и если процесс запущен, переменные окружения остаются статичными.
Как это работает? И работает ли? Может быть, под "рантаймом" имеаось в виду необходимость перезапускать сервер каждый раз для того, чтоб в приложении появились обновленные переменные окружения? Но ведь тогда получается, что runtimeConfig совсем не рантайм.
Под рантайм конфигурацией понимаются переменные окружения, которые может подхватить приложение после сборки. Если собрать обычное SPA, значения этих переменных зашиваются на этапе сборки прямо в код и их поменять можно только повторной пересборкой.
То, что вы в консоли установили переменную окружения и она сразу попала в приложения - скорее всего совпадение. Девопсы правильно сказали про их статичность, так что по какой-то причине у вас сработал hmr и подхватились новые переменные.
Найти конкретную причину всех возможных триггеров для перезагрузки в коде будет достаточно затруднительно, т.к. эта логика сильно размазана по пакетам Nuxt -> Nitro -> Vite -> Chokidar