Categorias do Site

Configurar variáveis de ambiente no Next.js

Aprenda a gerenciar variáveis de ambiente no Next.js, diferenciando públicas e privadas, e suas práticas recomendadas.

Ícone circular preto com a letra 'N' branca sobre fundo colorido com tons de azul, verde e roxo, destacado por bolhas luminosas.

Neste artigo, você aprenderá a gerenciar variáveis de ambiente no Next.js usando arquivos .env. Vamos abordar variáveis públicas vs. privadas, hierarquia de arquivos de variáveis de ambiente, limitações de tempo de execução e melhores práticas para configuração segura em desenvolvimento e produção.

O que são variáveis de ambiente no Next.js?

next js environmental variables

As variáveis de ambiente no Next.js são valores de configuração definidos fora do código-fonte e injetados na aplicação durante a construção ou execução. Elas são carregadas de arquivos .env ou do ambiente do sistema e acessadas usando process.env.

O Next.js suporta múltiplos arquivos de ambiente: .env, .env.local, .env.development, .env.production e .env.test. Esses arquivos são avaliados com base no modo de ambiente atual (NODE_ENV), e o Next.js prioriza .env.local para substituições locais.

O Next.js restringe quais variáveis de ambiente são expostas ao navegador. Apenas variáveis prefixadas com NEXT_PUBLIC_ são incorporadas no pacote do lado do cliente. Variáveis sem esse prefixo permanecem apenas no servidor, acessíveis exclusivamente no backend do Node.js. Essa divisão permite que dados sensíveis, como credenciais de banco de dados, permaneçam no servidor, enquanto a configuração voltada para o público, como flags de funcionalidades ou URLs base de API possam ser expostas com segurança ao frontend.

As variáveis de ambiente estão disponíveis tanto no código do lado do servidor (rotas de API, getServerSideProps, getStaticProps) quanto no código do lado do cliente (via NEXT_PUBLIC_*). No entanto, qualquer variável usada no código do lado do cliente deve ser prefixada adequadamente, ou não será incluída no JavaScript compilado enviado para o navegador.

Por que as variáveis de ambiente são importantes?

As variáveis de ambiente permitem a separação entre código e configuração. Isso garante que o mesmo código-fonte possa ser executado em vários ambientes (desenvolvimento, homologação, produção) sem mudanças nos arquivos de origem. Em vez de codificar URLs base, chaves de API, toggles de funcionalidades ou tokens de análise, eles são abstraídos por meio de variáveis de ambiente que são injetadas no momento da construção ou execução, dependendo da configuração de implantação.

Essa separação torna-se importante em pipelines de CI/CD. Durante o processo de construção, o arquivo .env.production ou variáveis de execução definidas na plataforma de nuvem definem valores como a URL do serviço de backend, flags de funcionalidades e credenciais de serviços de terceiros. Modificar esses valores não requer reconstruir o código, a menos que a variável seja necessária no momento da construção (como aquelas usadas durante a geração estática).

Começando com variáveis de ambiente

As variáveis de ambiente consistem em pares de nome-valor, como no exemplo abaixo:

API_KEY=1234
DB_CONN_STRING="http://localhost:3000"

Uma aplicação pode ter diferentes requisitos ao executar em ambientes de desenvolvimento, teste e produção. Em vez de ter diferentes códigos para a mesma aplicação, onde cada código é voltado para um ambiente específico, uma aplicação pode ter um único código cujo comportamento nos diferentes ambientes é determinado usando as configurações de variáveis de ambiente.

A aplicação pode ler as configurações das variáveis de ambiente e modificar seu comportamento para atender aos requisitos desse ambiente específico. Isso mantém o código curto, limpo e organizado:

process.env.API_KEY;
process.env.DB_CONN_STRING;

Em um ambiente de desenvolvimento, ferramentas para formatação de código, linting e teste são essenciais.

No entanto, essas ferramentas não são necessárias na etapa de produção. Ao trabalhar com ferramentas como npm, definir o valor da variável de ambiente embutida NODE_ENV para production instalará dependências que a aplicação precisa em produção, excluindo aquelas necessárias na etapa de desenvolvimento. Esse comportamento é configurável, se necessário.

Suporte embutido para variáveis de ambiente no Next.js

Como mencionado anteriormente, o Next.js tem suporte embutido para variáveis de ambiente. Para começar a usá-las, você pode declarar .env.local na raiz do seu diretório de projeto:

API_KEY=123456789
USERNAME=username
PASSWORD=password

O Next.js carregará as variáveis de ambiente acima no objeto process.env automaticamente para que você possa acessá-las no ambiente Node.js:

export async function getStaticProps() {
  console.log(process.env.API_KEY); 
  console.log(process.env.USERNAME);
  console.log(process.env.PASSWORD);
}

As variáveis de ambiente acima estão disponíveis apenas no ambiente Node.js e são referidas como variáveis de ambiente privadas. Prefixar o nome da variável com NEXT_PUBLIC_ as transforma em variáveis de ambiente públicas:

NEXT_PUBLIC_API_KEY=123456789
NEXT_PUBLIC_USERNAME=username
NEXT_PUBLIC_PASSWORD=password

Variáveis de ambiente públicas estão disponíveis tanto no navegador quanto nos ambientes Node.js. Exploraremos variáveis de ambiente públicas e privadas mais adiante neste artigo.

Variáveis de ambiente públicas e privadas no Next.js

Como introduzimos anteriormente, as variáveis de ambiente do Next.js podem ser categorizadas em variáveis de ambiente públicas e privadas, mas elas são privadas por padrão.

Variáveis de ambiente privadas são acessíveis apenas a partir do ambiente Node.js. Você pode declarar variáveis de ambiente privadas em qualquer um dos seus arquivos .env* assim:

ENV_VARIABLE=env_variable

Para tornar uma variável de ambiente pública, prefixe seu nome com NEXT_PUBLIC_ como no exemplo abaixo:

NEXT_PUBLIC_ENV_VARIABLE=nex_public_env_variable

Em tempo de construção, o Next.js acessará e substituirá referências às variáveis de ambiente públicas com seus valores reais no código-fonte empacotado para o ambiente do navegador.

Usando variáveis de ambiente em desenvolvimento local vs. produção

Os requisitos de uma aplicação durante o desenvolvimento podem não ser os mesmos que em produção. Portanto, algumas variáveis de ambiente podem ser necessárias apenas no desenvolvimento, outras na produção, e algumas em ambos os ambientes.

Por exemplo, se você declarar as variáveis de ambiente abaixo no arquivo .env.production, elas estarão disponíveis apenas no ambiente de produção:

BASE_URL='http://localhost:3000'
NEXT_PUBLIC_BASE_URL='http://localhost:3000'

Independentemente do arquivo em que você declara as variáveis de ambiente acima, a variável de ambiente BASE_URL estará disponível no ambiente Node.js porque é uma variável privada. E NEXT_PUBLIC_BASE_URL estará disponível tanto no navegador quanto nos ambientes Node.js porque é uma variável de ambiente pública.

Manipulando variáveis de ambiente com next.config.js

O Next.js oferece maneiras flexíveis de trabalhar com variáveis de ambiente. Você pode usar a propriedade env legada do arquivo next.config.js para configurar variáveis de ambiente, ou os arquivos .env* descritos acima, mais novos, intuitivos e ergonômicos.

  • Problemas com React Server Components

    Descubra os desafios e surpresas ao usar React Server Components em projetos reais.

    Descubra os desafios e surpresas ao usar React Server Components em projetos reais.

    Ler notícia completa
    Ícone de átomo neon azul-ciano flutuando sobre fundo roxo com linhas e pontos brilhantes, sugerindo um ambiente digital ou espaço cósmico.
  • Chave para IA Geral: Anotação Ética é Essencial

    Anotação ética é crucial para a IA Geral, garantindo respeito aos anotadores e criando consciências justas.

    Anotação ética é crucial para a IA Geral, garantindo respeito aos anotadores e criando consciências justas.

    Ler notícia completa
    Ilustração estilizada de quatro pessoas trabalhando em computadores, com um fundo de rede neural e um documento flutuante à direita, em tons azuis e laranja.
  • Como reduzir a troca de tarefas no design UX

    Descubra como otimizar a experiência do usuário reduzindo a troca de tarefas em plataformas digitais complexas.

    Descubra como otimizar a experiência do usuário reduzindo a troca de tarefas em plataformas digitais complexas.

    Ler notícia completa
    Ícone de personagem estilizado, parecido com um boneco, segurando um laptop e um celular, com um balão de fala acima, sobre um fundo abstrato cintilante e colorido.
  • Confissões de um Generalista em Web Design

    Existe um tipo especial de designer web por aí. Eles são os generalistas, aqueles que fazem a internet moderna funcionar, muitas vezes sem reconhecimento. Bem-vindo ao Multiverso de Você Você sabe quem é. Você projeta o site, constrói, escreve o texto quando ninguém mais aparece. Você lida com o CMS e descobre por que o […]

    Descubra o papel crucial do generalista em web design e sua habilidade única de gerenciar caos e criar soluções.

    Ler notícia completa
    Homem surpreso com cabelo despenteado e óculos redondos segura uma caneca e cabos, cercado por coloridos papéis adesivos em fundo laranja e verde.
  • Roteamento de IA: Apps mais inteligentes com SDK

    Se você está desenvolvendo aplicações de IA, provavelmente está lidando com mais de um modelo de linguagem em sua aplicação: GPT-4 para tarefas gerais, Claude para codificação ou até mesmo o mais recente Nano Banana para geração de imagens. Durante o desenvolvimento, você pode querer experimentar modelos de código aberto localmente, caso seu hardware suporte. […]

    Aprenda a usar o roteamento de modelos sensível ao ambiente para criar apps de IA mais eficientes com o AI SDK.

    Ler notícia completa
    Círculo preto central com um triângulo branco sobre fundo que se assemelha a uma nuvem rosa gradientemente colorida.
  • Práticas de segurança para projetos com IA

    Assistentes de código com IA são comuns em IDEs devido à produtividade que trazem, mas uma pesquisa de Stanford revelou que desenvolvedores com assistência de IA tendem a criar códigos menos seguros. Para proteger um fluxo de trabalho assistido por IA, é necessário adotar uma disciplina ativa e multifacetada. Este artigo apresenta um guia prático […]

    Descubra práticas essenciais para proteger projetos gerados por IA e evitar vulnerabilidades comuns.

    Ler notícia completa
    Ilustração de um labirinto estilizado em tons de roxo e azul, com um grande símbolo de cadeado roxo no centro, representando segurança ou privacidade.
  • Interfaces de Voz e Imersão: Futuro da Experiência UX

    “As tecnologias mais profundas são aquelas que desaparecem. Elas se integram ao tecido da vida cotidiana até se tornarem indistinguíveis dela.” — Mark Weiser Seus usuários já estão interagindo com dispositivos por voz. Nos EUA, 62% dos adultos usam assistentes de voz, enquanto 42% das famílias no Reino Unido possuem dispositivos com essa funcionalidade. Eles […]

    Prepare seu produto para o futuro das interfaces de voz e imersão, que estão transformando a interação digital.

    Ler notícia completa
    Design gráfico com fundo azul escuro apresentando as palavras
  • Por que PMs e designers precisam de ambiente AI

    Resumo Executivo Agentes de IA estão avançando de protótipos para produção, mas muitos falham sem a base correta: um ambiente de execução de agentes de IA. Pesquisas do MIT revelam que 95% dos testes de IA generativa não geram impacto mensurável. A Forbes destaca que dados fragmentados e sinais conflitantes condenam a maioria dos pilotos, […]

    Ambiente de execução AI é essencial para sucesso de projetos, evitando falhas de integração e otimizando processos.

    Ler notícia completa
    Pintura abstrata de um horizonte de cidade com edifícios coloridos sob um céu geométrico dividido em seções coloridas com linhas conectando pontos.
  • Melhores Modelos de Relatórios para InDesign e Photoshop

    Relatórios empresariais podem abranger uma ampla gama de usos, desde grandes relatórios anuais até folhas de produtos de uma página. Criar um design detalhado do zero pode ser demorado. Como equilibrar eficiência e estética? Os modelos de relatórios empresariais e corporativos desta coleção são a solução ideal. Eles são pré-desenhados, personalizáveis e compatíveis com aplicativos […]

    Descubra modelos de relatórios empresariais para InDesign e Photoshop em 2025. Otimize seus designs e economize tempo.

    Ler notícia completa
    Diversas páginas de um relatório corporativo abertas, mostrando gráficos, fotos e textos sobre negócios e finanças, em design moderno e limpo.