Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Muita gente que tenta usar o pm2 para gerenciar servidores Node acaba enfrentando dificuldades na hora de carregar variáveis de ambiente usando o arquivo .env.
O problema mais comum é o erro: "Cannot find module 'dotenv/config'" mesmo após configurar tudo certinho. No meu time, já passei por isso várias vezes, principalmente quando o .env fica em uma pasta diferente do servidor.
A solução, na prática,, muitas vezes, é garantir que a variável de ambiente NODE_ENV esteja configurada corretamente e que o pm2 esteja apontando para o arquivo de configuração cerot. Um ponto importante é verificar se o pm2 está carregando o arquivo ecosystem.config.js com o comando correto.
Outra dica é usar o plugin do pm2 chamado pm2-dotenv, que ajuda a integrar melhor o carregamento de variáveis. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois.
No seu caso, o que costuma ajudar é inserir na configuração do seu ecosystem.config.js uma linha que exporta as variáveis de ambiente, assim: Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
module.exports = {
// ...
env: {
NODE_ENV: 'production',
// outras variáveis
}
}
Assim, evita o erro de módulo e garante que suas variáveis fiquem acessíveis.
O que vocês já tentaram até agora para resolver esse tipo de problema? Acha que usar o pm2-dotenv ajudaria na sua situação? Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte.
A minha experiência é que usar o plugin pm2 dotenv foi o que resolveu pra mim.
No meu time, a gente sempre prefere configurar as variáveis direto na configuração do pm2 ao invés de depender do arquivo.env. Assim evita esses problemas de carga. Você tenotu passar as variáveis no env do próprio ecosystem?
Sim, já passei por isso. Uma coisa que ajuda é cuidar para que o caminho do seu arquivo.env está correto e que o Node está acessando ele no momento do start.