Estou tendo problemas para configurar e ler variáveis de ambiente em um NextJS
projeto.
Eu tenho dois console logs
:
console.log('env', process.env.NODE_ENV);
console.log('backend url', process.env.BACKEND_URL);
Executar o código sem fazer nada retorna o que eu esperava:
env development
backend url undefined
Exportando variáveis como esta:
NODE_ENV=production
BACKEND_URL=url
Não apenas imprime os valores anteriores, mas também mostra a seguinte mensagem no console:
⚠ Você está usando um valor "NODE_ENV" não padrão em seu ambiente. Isto cria inconsistências no projeto e é fortemente desaconselhado. Leia mais: https://nextjs.org/docs/messages/non-standard-node-env
Exportando assim:
export NODE_ENV=production
export BACKEND_URL=url
Também imprime o mesmo, incluindo o aviso.
Correndo NodeJS
assim:
BACKEND_URL=url NODE_ENV=production npm run dev
Imprime o mesmo. echo
o vars imprime os valores corretos.
Não é só o console.logs
, tento usar esses valores em outras partes do código e eles agem como se esses valores ainda fossem development
e undefined
.
Eu também tentei com um .env
arquivo:
NODE_ENV=production
BACKEND_URL=url
Posso ver que está sendo lido porque, quando inicio o NextJS
servidor, vejo o seguinte:
next dev -p 8080
▲ Next.js 14.1.4
- Local: http://localhost:8080
- Environments: .env
Quando o arquivo não existe, a linha onde diz Environment: .env
não aparece.
Por fim, verifiquei ~/.bashrc
and ~/.zshrc
, e eles não têm nenhuma menção a NODE_ENV
or BACKEND_URL
.
O que poderia estar acontecendo?