ForgeTotal.js 5
ro

Total.js 5

Rulează în modul debug și în modul release

Total.js 5 · total5@0.0.19 deploymentdebugreleaseenvironment Executată cu Total.js 5

Total.js rulează într-unul din două moduri, debug pentru dezvoltare și release pentru server, iar booleanul global DEBUG îi spune codului tău care este activ. În modul debug aplicația rulează sub un watcher de fișiere care o repornește când modifici un fișier, erorile arată detalii și se generează source map-uri. Modul release nu are watcher, iar paginile de eroare nu arată detaliile tehnice.

Modul este ales de felul în care este pornită aplicația, în scriptul de pornire (index.js) care apelează Total.run(options):

  • implicit este debug, cu watcherul;
  • options.release = true pornește modul release; scriptul de pornire generat de Total.js îl setează din linia de comandă, deci node index.js --release este modul de a porni producția;
  • options.watcher = false rulează un singur proces fără watcher, iar acesta este întotdeauna modul release (este ceea ce folosesc exemplele acestui caiet de rețete).

Înainte ca Total.run() să decidă, DEBUG are o valoare implicită luată din NODE_ENV: este false când NODE_ENV=production și true în rest. Codul care rulează în momentul încărcării unui modul vede acea valoare implicită, așa că nu te baza pe NODE_ENV pentru modul final, ci doar pe DEBUG după ce aplicația a pornit.

Rutele pot urma modul. Flagul @debug face ca o rută să existe doar în modul debug, iar @release doar în modul release; în celălalt mod URL-ul răspunde cu 404. Folosește @debug pentru uneltele de care ai nevoie în timpul dezvoltării (un vizualizator de baze de date, o rută cu date de test), ca să nu ajungă niciodată din greșeală în producție.

controllers/mode.js
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' });
}