Distribuire un’app Express


Puoi trovare la guida al deploy passo passo qui.

Build dell’applicazione
Copia link

Hostman utilizza il seguente ambiente durante la build di un’applicazione Express:

  • Node.js: 16, 18, 20, or 22
  • npm
  • yarn
  • PM2 (ultima versione)

L’applicazione viene sempre costruita dalla root del repository, quindi assicurati di posizionare lì il file package.json. Se il file si trova in una sottodirectory (ad esempio, landing), devi modificare il comando di build. Per esempio:

npm run --prefix landing build

Hostman eseguirà i seguenti comandi durante la build:

apt install -y nodejs --fix-missing
npm install pm2@latest -g
npm install express

Se il progetto include un file package.json e utilizza yarn, eseguiremo anche:

apt-get remove -y cmdtest yarn
npm install --global yarn
cd /<DIRECTORY> && yarn install --check-files

In tutti gli altri casi, se è presente un file package.json:

cd /<DIRECTORY> && npm install

<DIRECTORY> è il percorso della directory con package.json. Nella maggior parte dei casi, è la root del progetto.

L’applicazione viene eseguita utilizzando il process manager PM2. Il comando di avvio predefinito è:

pm2 start --no-daemon app.js

Il file di inizializzazione dell’applicazione (app.js nell’esempio sopra) può chiamarsi app.js, server.js, main.js o index.js.

Risoluzione dei problemi
Copia link

Il deploy fallisce
Copia link

Se ci sono problemi con il deploy, controlla prima il log di deploy. Potrai determinare in quale punto qualcosa è andato storto.

Spesso i problemi sono legati al comando di avvio. Verifica che tutto nel tuo ambiente di sviluppo funzioni con pm2. Assicurati che tutti i moduli necessari per eseguire l’applicazione siano presenti nel file package.json.

Please add build instructions to your script section in package.json
Copia link

Il problema è che il comando yarn build accede al file package.json e, se il valore della direttiva build non è specificato, si verifica un errore.

Per risolvere questo problema, devi aggiungere le direttive necessarie alla sezione scripts del file package.json. Leggi di più sull’uso degli scripts qui.