Nuxt 3-rc6
Локально у меня лежит файлик .env с нужными переменными
nuxt.config.js
export default defineNuxtConfig({
publicRuntimeConfig: {
backendUrl: process.env.BACKEND_URL,
},
privateRuntimeConfig: {
secret: 123,
},
Я предпологал, что на продакшене положу другой .env и все будет работать.
Собираю проект
npm run build
Переменные в продакшене не подхватываются. Остаются перменные из development окружения.
Я нашел это в документации, написано, что .env не подгружается, зато можно передать настройки через переиенные окружения.
However, after your server is built, you are responsible for setting environment variables when you run the server. Your .env file will not be read at this point. How you do this is different for every environment. On a Linux server, you could pass the environment variables as arguments using the terminal DATABASE_HOST=mydatabaseconnectionstring node .output/server/index.mjs. Or you could source your env file using source .env && node .output/server/index.mjs.
Note that for a purely static site, it is not possible to set runtime configuration config after your project is prerendered.
Однако и этот способ тоже не рабтает.
Запуск с помощью команды не приводит к перезаписыванию переменной.
BACKEND_URL=http://mydomain.ru node server/index.mjs
Насколько я вижу из собранного пакета, там нигде не запрашивается переменная окружения BACKEND_URL.