Eseguire in modalità debug e release
Total.js funziona in una di due modalità, debug per lo sviluppo e release per il server, e il booleano globale DEBUG dice al tuo codice quale è attiva. In modalità debug l'applicazione gira sotto un watcher di file che la riavvia quando modifichi un file, gli errori mostrano dettagli e vengono generate le source map. La modalità release non ha watcher e le pagine di errore non mostrano i dettagli tecnici.
La modalità è scelta da come si avvia l'applicazione, nello script di avvio (index.js) che chiama Total.run(options):
- il valore predefinito è debug, con il watcher;
options.release = trueavvia la modalità release; lo script di avvio generato da Total.js la imposta dalla riga di comando, quindinode index.js --releaseè il modo di avviare la produzione;options.watcher = falseesegue un singolo processo senza watcher, e quella è sempre la modalità release (è ciò che usano gli esempi di questo ricettario).
Prima che Total.run() abbia deciso, DEBUG ha un valore predefinito preso da NODE_ENV: è false quando NODE_ENV=production e true altrimenti. Il codice che gira al momento del caricamento di un modulo vede quel valore predefinito, quindi non fare affidamento su NODE_ENV per la modalità finale, ma solo su DEBUG dopo l'avvio dell'applicazione.
Le rotte possono seguire la modalità. Il flag @debug fa esistere una rotta solo in modalità debug e @release solo in modalità release; nell'altra modalità l'URL risponde 404. Usa @debug per gli strumenti che ti servono durante lo sviluppo (un visualizzatore di database, una rotta di dati di prova) così non arriveranno mai in produzione per sbaglio.
exports.install = function() {
ROUTE('GET /mode/', mode);
ROUTE('GET /tools/ @debug', tools);
ROUTE('GET /status/ @release', status);
};
function mode($) {
$.json({ debug: DEBUG });
}
function tools($) {
$.json({ tools: true });
}
function status($) {
$.json({ status: 'ok' });
}