Ejecuta en modo debug y en modo release
Total.js funciona en uno de dos modos, debug para desarrollar y release para el servidor, y el booleano global DEBUG le dice a tu código cuál está activo. En modo debug la aplicación se ejecuta bajo un watcher que la reinicia cuando cambias un archivo, los errores muestran detalles y se generan source maps. El modo release no tiene watcher y las páginas de error no muestran los detalles técnicos.
El modo lo decide cómo se arranca la aplicación, en el script de arranque (index.js) que llama a Total.run(options):
- por defecto es debug, con el watcher;
options.release = truearranca el modo release; el script de arranque que genera Total.js lo activa desde la línea de comandos, así quenode index.js --releasees la forma de arrancar producción;options.watcher = falseejecuta un único proceso sin watcher, y eso es siempre modo release (es lo que usan los ejemplos de este recetario).
Antes de que Total.run() lo haya decidido, DEBUG tiene un valor por defecto tomado de NODE_ENV: es false cuando NODE_ENV=production y true en cualquier otro caso. El código que se ejecuta en el momento de cargar un módulo ve ese valor por defecto, así que no confíes en NODE_ENV para el modo final, solo en DEBUG una vez arrancada la aplicación.
Las rutas pueden seguir el modo. El flag @debug hace que una ruta exista solo en modo debug y @release solo en modo release; en el otro modo la URL responde 404. Usa @debug para las herramientas que necesitas mientras desarrollas (un visor de base de datos, una ruta de datos de prueba) y así nunca llegarán a producción por accidente.
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' });
}