ForgeTotal.js 5
sv

Total.js 5

Köra i debug- och releaseläge

Total.js 5 · total5@0.0.19 deploymentdebugreleaseenvironment Körd med Total.js 5

Total.js körs i ett av två lägen, debug för utveckling och release för servern, och den globala boolean DEBUG talar om för din kod vilket som är aktivt. I debugläge körs applikationen under en filbevakare (watcher) som startar om den när du ändrar en fil, fel visar detaljer och source maps genereras. Releaseläget har ingen watcher och felsidorna visar inga tekniska detaljer.

Läget bestäms av hur applikationen startas, i startskriptet (index.js) som anropar Total.run(options):

  • standard är debug, med watchern;
  • options.release = true startar releaseläge; startskriptet som Total.js genererar sätter det från kommandoraden, så node index.js --release är sättet att starta produktion;
  • options.watcher = false kör en enda process utan watcher, och det är alltid releaseläge (det är vad exemplen i den här receptsamlingen använder).

Innan Total.run() har bestämt har DEBUG ett standardvärde från NODE_ENV: det är false när NODE_ENV=production och annars true. Kod som körs när en modul laddas ser det standardvärdet, så lita inte på NODE_ENV för det slutliga läget, utan bara på DEBUG efter att applikationen har startat.

Rutterna kan följa läget. Flaggan @debug gör att en rutt bara finns i debugläge och @release bara i releaseläge; i det andra läget svarar URL:en med 404. Använd @debug för verktyg du behöver under utvecklingen (en databasvisare, en rutt med testdata) så att de aldrig av misstag når produktion.

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' });
}