Você pode encontrar o guia passo a passo para fazer deploy aqui.
A Hostman utiliza o seguinte ambiente ao fazer o build de um app Express:
O app sempre é buildado a partir da raiz do repositório, então certifique-se de colocar o package.json lá.
Se o arquivo estiver em um subdiretório (ex.: landing), será necessário ajustar o comando de build. Por exemplo:
npm run --prefix landing build
A Hostman executa os seguintes comandos durante o build:
apt install -y nodejs --fix-missing
npm install pm2@latest -g
npm install express
Se o projeto tiver package.json e usar yarn, também será executado:
apt-get remove -y cmdtest yarn
npm install --global yarn
cd /<DIRETÓRIO> && yarn install --check-files
Nos outros casos em que o package.json estiver presente:
cd /<DIRETÓRIO> && npm install
<DIRETÓRIO> é o caminho até o diretório com o package.json. Na maioria dos casos, é a raiz do projeto.
O app é executado usando o PM2 process manager.
O comando de start padrão é:
pm2 start --no-daemon app.js
O arquivo de inicialização da aplicação (no exemplo acima, app.js) pode se chamar app.js, server.js, main.js ou index.js.
Se houver problemas no deploy, primeiro confira o log de deploy. Ele ajuda a identificar em qual etapa ocorreu o erro.
Na maioria dos casos, os problemas estão relacionados ao comando de start.
Certifique-se de que tudo funciona localmente com pm2.
Verifique se todos os módulos necessários estão listados no package.json.
O problema é que o comando yarn build acessa o package.json, e se o valor da diretiva build não estiver especificado, ocorre um erro.
Para corrigir isso, adicione as diretivas necessárias na seção scripts do package.json. Leia mais sobre o uso de scripts aqui.