Futtatás debug és release módban
A Total.js két mód egyikében fut, debug a fejlesztéshez és release a szerverhez, a globális DEBUG logikai érték pedig megmondja a kódodnak, melyik aktív. Debug módban az alkalmazás fájlfigyelő (watcher) alatt fut, amely fájlmódosításkor újraindítja, a hibák részleteket mutatnak, és source mapek készülnek. A release módnak nincs watchere, a hibaoldalak pedig nem mutatják a technikai részleteket.
A módot az dönti el, hogyan indítod az alkalmazást, az indítóscriptben (index.js), amely a Total.run(options)-t hívja:
- az alapértelmezés a debug, a watcherrel;
- az
options.release = truerelease módot indít; a Total.js által generált indítóscript parancssorból állítja be, így anode index.js --releasea termelés indításának módja; - az
options.watcher = falseegyetlen folyamatot futtat watcher nélkül, és ez mindig release mód (ezt használják a receptgyűjtemény példái).
Mielőtt a Total.run() döntene, a DEBUG-nak van egy alapértéke a NODE_ENV-ből: false, ha NODE_ENV=production, különben true. Az a kód, amely egy modul betöltésekor fut, ezt az alapértéket látja, ezért a végső módhoz ne a NODE_ENV-re hagyatkozz, csak a DEBUG-ra az alkalmazás elindulása után.
Az útvonalak követhetik a módot. A @debug jelző azt eredményezi, hogy az útvonal csak debug módban létezik, a @release pedig csak release módban; a másik módban az URL 404-gyel válaszol. A @debug-ot a fejlesztés közben szükséges eszközökhöz használd (adatbázis-megjelenítő, tesztadatokat feltöltő útvonal), hogy sosem kerüljenek véletlenül élesbe.
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' });
}