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:
- 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"
- 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
- Criação do Arquivo
ecosystem.config.js
:module.exports = { apps: [ { name: 'NOME_PROJETO', script: 'yarn', args: 'start', interpreter: '/bin/bash', env: { NODE_ENV: 'production', }, }, ], };
- Inicialização da Aplicação:
- Com o arquivo configurado, basta rodar o comando:
bash pm2 start ecosystem.config.js
- Com o arquivo configurado, basta rodar o comando:
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:
- 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.
- 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!