O objetivo desse post é ensinar maneiras de fazer o deploy por GitHub da sua aplicação!
Motivo
Git Remote é o único método de deploy onde é executado o npm install. E consequentemente quaisquer ações que desencadeiam dele. Como o script postinstall, por exemplo.
Pessoalmente, eu recomendo utilizar esse método se possível.
Caso você preferir a integração com o GitHub, uma dessas opções a seguir poderá lhe ajudar!
Cuidados
- O package.json precisa ficar na raiz da hospedagem. Então no seu repositório, o package.json também precisa estar na raiz. Algo assim:
Pois é lá que ele será procurado para receber instruções de como iniciar a aplicação. Se estiver em uma subpasta, não irá funcionar. Os logs da aplicação ficarão assim:
Conectando
Após conectar o GitHub com a Umbler, você terá a opção de escolher qual dos seus repositórios você deseja clonar e o diretório
Mantenha o diretório na raiz /
Clique em Salvar
Agora, faça um deploy manualmente.
Após isso, seu repositório foi clonado e já está disponível nos arquivos do site
Note que não existe a pasta node_modules
. As dependências não são baixadas automaticamente. Essa feature é exclusiva do deploy via Git Remote. Note que os logs da aplicação vão reclamar que haverá módulos não encontrados
Como instalar as dependências
Há vários métodos onde você pode instalar as suas dependências. Abaixo alguns exemplos, ordenados por melhor maneira, até menos melhor maneira
Enviar a node_modules
por FTP
- Vá em Deploy e selecione FTPS
- Copie os dados mostrados para um cliente como o FileZilla ou outro software de sua preferência
- Copie a
node_modules
para a raiz
- Depois de copiar, reinicie a aplicação
Funcionando!
Versionar a node_modules
- Remova a
node_modules
do arquivo.gitignore
- Envie novamente para o GitHub
Ao versionar a node_modules
, ela já vai ser copiada para a hospedagem junto com os outros arquivos. Essa solução é válida, mas pode ser um pouco inconveniente dependendo do tamanho da sua node_modules
.
Conectar por SSH e rodar npm install
-
Primeiro, configure a sua conexão por SSH
-
Tente conectar
Se ocorrer o erro Connection closed by remote host
é porque o container está offline. Provavelmente devido a aplicação não ter iniciado ou terminado com erro. Mais detalhes do porquê isso acontece e como resolver nesse meu outro post
- Execute o comando
npm install
- Reinicie a sua aplicação
Funcionando!