📢 Nuovo Corso Laravel API disponibile!

Differenza tra Sviluppo e Produzione

È possibile avere diverse configurazioni per gli ambienti di produzione e di sviluppo.

Node.js presume di essere sempre in esecuzione in un ambiente di sviluppo. Puoi segnalare a Node.js che stai eseguendo in produzione impostando la variabile d’ambiente NODE_ENV=production.

Questo di solito viene fatto eseguendo il comando

Terminal window
export NODE_ENV=production

nella shell, ma è meglio inserirlo nel file di configurazione della tua shell (ad esempio .bash_profile con la shell Bash) perché altrimenti l’impostazione non persiste in caso di riavvio del sistema.

Puoi anche applicare la variabile d’ambiente anteposta al comando di inizializzazione dell’applicazione:

Terminal window
NODE_ENV=production node app.js

Questa variabile d’ambiente è una convenzione ampiamente utilizzata anche nelle librerie esterne.

Impostare l’ambiente su production generalmente garantisce che

  • la registrazione sia mantenuta al livello minimo essenziale
  • siano presenti più livelli di caching per ottimizzare le prestazioni

Ad esempio, Pug, la libreria di templating utilizzata da Express, si compila in modalità di debug se NODE_ENV non è impostato su production. Le viste di Express vengono compilate in ogni richiesta in modalità di sviluppo, mentre in produzione vengono memorizzate nella cache. Ci sono molti altri esempi.

Puoi utilizzare dichiarazioni condizionali per eseguire il codice in ambienti diversi:

if (process.env.NODE_ENV === "development") {
// ...
}
if (process.env.NODE_ENV === "production") {
// ...
}
if (["production", "staging"].includes(process.env.NODE_ENV)) {
// ...
}

Ad esempio, in un’app Express, puoi utilizzare questo per impostare gestori di errori diversi per ciascun ambiente:

if (process.env.NODE_ENV === "development") {
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
}
if (process.env.NODE_ENV === "production") {
app.use(express.errorHandler());
}