Como Publicar o Next.js no Seu Servidor!

Introdução

Não tenho um framework favorito, mas tenho gostado bastante de utilizar o Next.js junto com o Tailwind CSS. No entanto, uma situação que sempre enfrento e acho muito chata é quando preciso publicar esse projeto em um lugar que não seja na Vercel.

Problema Inicial

Meu método inicial para fazer o deploy envolvia o uso do PM2, um gerenciador de processos para aplicações Node.js. No entanto, o processo que eu seguia era trabalhoso e, possivelmente, inadequado. Veja abaixo o fluxo que eu utilizava:

  1. Adicionava um parâmetro “prod” dentro dos scripts do meu package.json com o seguinte comando:
    json "prod": "yarn build && pm2 start yarn --name 'NOME_PROJETO' --interpreter bash -- start"
  2. Sempre que precisava reiniciar a aplicação com pm2 reload, surgiam problemas que tornavam o processo desconfortável e ineficiente.

Solução Mais Prática

Após algumas tentativas e pesquisas, encontrei uma solução mais prática: criar o arquivo ecosystem.config.js com as configurações de build e start do projeto. A seguir, descrevo os passos que sigo atualmente:

Passo a Passo

  1. Criação do Arquivo ecosystem.config.js: module.exports = { apps: [ { name: 'NOME_PROJETO', script: 'yarn', args: 'start', interpreter: '/bin/bash', env: { NODE_ENV: 'production', }, }, ], };
  2. Inicialização da Aplicação:
    • Com o arquivo configurado, basta rodar o comando:
      bash pm2 start ecosystem.config.js

Benefícios

Adotar essa abordagem trouxe diversos benefícios, entre eles:

  • Facilidade de Manutenção: O processo de deploy tornou-se mais organizado e menos propenso a erros.
  • Eficiência nas Atualizações: O comando pm2 reload agora funciona sem complicações, permitindo atualizações rápidas e eficientes da aplicação.
  • Consistência: A aplicação permanece estável e funcional em produção.

Conclusão

Até o momento, essa tem sido a maneira mais prática que encontrei para fazer deploy de projetos Next.js fora da Vercel. Esta abordagem não só facilita a manutenção e a atualização da aplicação, mas também proporciona uma experiência de deploy mais suave e menos problemática.

Se você conhece algum outro método ou tem sugestões para melhorar este processo, compartilhe nos comentários! Estou sempre aberto a aprender novas técnicas e aprimorar meu fluxo de trabalho.

Sugestões de Leitura

Para complementar este artigo, recomendo a leitura dos seguintes tópicos:

  1. Como otimizar aplicações Next.js para produção: Estratégias e práticas recomendadas para garantir que sua aplicação Next.js esteja sempre otimizada e pronta para escalar.
  2. Integração de Tailwind CSS com outros frameworks: Explorando como o Tailwind CSS pode ser integrado com diversos frameworks front-end para criar interfaces de usuário modernas e responsivas.

Espero que este guia seja útil e ajude a simplificar o processo de deploy de suas aplicações Next.js. Boas codificações!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *