Deploy Heroku
Introdução
No final deste artigo você será capaz de publicar sua aplicação no Heroku, além de entender conceitos importantes e ferramentas.
Adaptações e modificações necessárias
Para que a aplicação funcione corretamente no Heroku, precisaremos fazer algumas modificações em nosso código. As modificações serão bem poucas, porém de extrema importância, e são requeridas para um funcionamento adequado na plataforma em questão.
Primeiramente, em nosso arquivo dev/src/server.js faremos com que a aplicação verifique se existe alguma Porta informada entre as variáveis de ambiente do NodeJS.
Faremos a seguinte modificação no código de inicialização.
import { JSagon } from '@jsagon/core'
import configApp from './config/app.config'
JSagon.create(configApp).listen(process.env.PORT || 3000, () => {
console.log('Server online!')
})
O process.env contém as variáveis de ambiente injetadas em tempo de execução, normalmente na inicialização do NodeJS. No caso em questão, quando o Heroku inicializar a aplicação Node, ele passará uma porta específica no qual a aplicação deverá se conectar.
Todos os arquivos da pasta dev, no qual de fato é realizado as implementações, faz parte da área do ambiente de desenvolvimento. Quando mandamos o projeto para o Heroku, queremos que a versão final e transcompilada do projeto seja enviada. Para isso precisaremos rodar o seguinte comando:
npm run build
Finalizado a execução do comando anterior, uma pasta de distribuição (dist) terá sido gerada.
Git - Controle de Versão
Como pré-requisito para utilização do Heroku, precisaremos antes instalar o Git. Git é um sistema de controle de versão gratuito muito eficiente, e bastante utilizado.
Para realizar o download, basta acessar o link e baixar de acordo com o seu sistema operacional. https://git-scm.com/downloads.
Após a instalação, rode o comando a seguir no terminal de sua preferência para conferir se a ferramenta foi instalada corretamente.
git --version
Se o terminal executar e mostrar a versão instalada do git, significa que podemos prosseguir.
Abra o terminal na pasta do projeto. E execute o seguinte comando.
git init
Desta forma, estaremos inicializando o git e criando as configurações de repositório para o nosso projeto. Um repositório git basicamente contém uma coleção de arquivos de diferentes versões do projeto.
Antes de versionarmos de fato o projeto em si, precisaremos modificar o arquivo na raiz de nosso projeto chamado ".gitignore". Este arquivo é utilizado para definir pastas e arquivos que não gostaríamos de versionar, arquivos que serão ignorados, como por exemplo a pasta node_modules, visto que o nosso arquivo package.json já contém toda as informações de dependências e configurações da aplicação. Porém, atualmente a pasta dist também se encontra em nosso arquivo, precisaremos tirar o seu nome do arquivo para podermos enviar para o Heroku.
Desta forma, o arquivo .gitignore ficará da seguinte maneira:
node_modules
Pronto, agora podemos iniciar o versionamento em si.
Para fins de aprendizado e controle, rode o comando em seu terminal:
git status
Este comando é responsável por mostrar o status de versionamento do projeto. Os nomes em vermelho sinaliza que os novos arquivos, ou aqueles que foram modificados, ainda não foram adicionados ao estágio de confirmação.
Atenção: Certifique-se de que a pasta node_modules não está listada.
Para adicionarmos os arquivos pendentes, em vermelho, no diretório ativo. No terminal e na raiz do projeto, execute o seguinte comando.
git add .
Este comando adicionará todos os arquivos pendentes, no diretório ativo, para efetivar as modificações e novos arquivos adicionados, para controle de versão.
Rode novamente o comando git status. Os nomes de cor verde sinaliza que os arquivos estão confirmados para versionamento. Nesse estágio, as modificações e controle de versão não foram efetivamente realizados.
Agora, registraremos as mudanças de fato criando uma versão para elas. Rode o seguinte comando:
git commit -m "Commit inicial"
O comando anterior efetiva a confirmação das modificações, assim registrando ela no controle de versão.
Voltaremos posteriormente com mais um comando, agora, daremos início ao Heroku.
Heroku
O Heroku é uma plataforma que funciona como serviço, fornecendo aos desenvolvedores um ambiente que possibilita facilmente disponibilizar uma aplicação, que vai desde aplicações apenas para testes até aplicações mais robustas.
Para a nossa aplicação, faremos o uso da versão gratuita, que atende facilmente as nossas implementações. Mas antes de qualquer coisa, é preciso baixar o cliente do Heroku para a sua máquina. O download pode ser feito no link a seguir, escolha de acordo com o seu sistema operacional. De preferência, utilize as opções principais, as primeiras.
https://devcenter.heroku.com/articles/heroku-cli#download-and-install.
Após realizada a instalação, para saber se tudo ocorreu corretamente, rode o comando a seguir:
heroku --version
Deverá ser apresentado a versão do Heroku instalado.
Agora precisaremos criar uma conta na plataforma. Acesse o link a seguir e preencha o formulário. https://signup.heroku.com.
Após a criação da conta, será enviado um link para o seu e-mail ao qual você deverá confirmar.
Seguindo todos os passos, você deverá ver uma tela similar a essa:
Clique no botão para prosseguir, e na próxima tela, aceite os termos de uso.
Sua tela inicial então será apresentada provavelmente como a seguir:
Agora voltemos para o projeto local. Abra o terminal na pasta do projeto, e execute o seguinte comando.
heroku login
Ao executar esse comando, será pedido que digite qualquer tecla para continuar, faça isso. Em seguida, o sistema abrirá o browser pedindo a sua autenticação. Entre com a conta que acabou de criar. Finalizado, volte para o terminal. Se o login ocorrer corretamente, você verá como a imagem a seguir.
Agora, criaremos a aplicação no Heroku com o comando heroku create e o nome da aplicação desejada como no exemplo a seguir. É importante que esse comando seja executado na pasta do projeto. Troque o nome do projeto para um de sua preferência. Esse nome deverá ser único para a aplicação, caso se escolha um nome já utilizado, será retornado um erro.
heroku create tutorial-node-projeto-website
OBS.: Depois da criação do tutorial, o nome do projeto foi alterado para jsagon-framework-example e a url foi alterada para https://jsagon-framework-example.herokuapp.com/
Duas urls serão apresentadas no resultado da execução do comando, a primeira url é o caminho do seu projeto a ser acessado no browser e compartilhado. O segundo, é a url de versionamento a ser utilizada via Git, pela qual mandaremos o projeto local para o Heroku.
Para conferir se o caminho já foi atribuído ao Git, rode o seguinte comando.
git remote -v
Este comando checa as urls remotas atribuídas ao projeto. Dois registros de urls deverão ser apresentados, igualmente ao caminho do git da criação do Heroku.
Agora, para subir o projeto para o Heroku. Rode o seguinte comando:
git push heroku master
O git push envia as modificações "comitadas" para a versão master, principal, do projeto no Heroku. O resultado será como na imagem a seguir:
Agora, no browser, acesse a url do projeto de acordo como você a criou e o Heroku informou. No caso deste tutorial, a url é https://jsagon-framework-example.herokuapp.com/.
OBS.: Depois da criação do tutorial, o nome do projeto foi alterado para jsagon-framework-example.
Atenção: Quando acessado pela primeira vez, o carregamento da aplicação irá demorar, mas isso é normal. É devido a plataforma estar instalando as dependências de produção e inicializando a aplicação.
Caso ocorra algum erro, verifique atentamente os passos anteriores. Se o erro persistir e estiver difícil de solucionar, entre em contato que será retornado assim que possível.
Bom, é isso. Parabéns pelo deploy!👏
Qualquer dúvida, entre em contato por um dos meios disponíveis.