Wie verwenden von vorkompilierten templates in LENKER mit RequireJS?
Möchte ich precompile-meine LENKER-Vorlagen, aber ich bin mir nicht sicher, wie dies funktioniert im Entwicklungsmodus.
Ist es gängige Praxis, haben einige hintergrund-Prozess wie Guard läuft ständig überwacht Veränderungen an LENKER template-Dateien?
Ich bin mit RequireJS zu ziehen, die in den Vorlagen; z.B.:
define(['jquery', 'handlebars', 'text!templates/my_template'], function($, Handlebars, myTemplate) {
//...
var data = {"some": "data", "some_more": "data"};
var templateFn = Handlebars.compile(myTemplate);
$('#target').append(templateFn(data));
//...
});
So, ich verstehe, sobald die templates sind vorkompilierte, würde man dies tun:
define(['jquery', 'handlebars'], function($, Handlebars) {
//...
var data = {"some": "data", "some_more": "data"};
var template = Handlebars.templates['my_template'];
$('#target').append(template(data));
//...
});
Beachten Sie Folgendes über die in der zweiten code-snippet:
- Der RequireJS-Modul nicht mehr zieht in der Vorlage.
- LENKER.compile() wird nicht mehr verwendet.
Also normalerweise hätte ich Wache läuft, um meine Vorlagen kompiliert, wenn die Datei-system-Ebene änderungen passieren, über die template-Dateien?
Im Grunde meine Frage ist, ist die Absicht für Entwickler, dies zu tun?
if (development) {
compile templates
}
else {
use precompiled templates
}
Ich bin auch mit Schienen, so vielleicht gibt es einige schwarze Magie wie sass-rails.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben, nehmen Sie einen Blick an Require.js LENKER-Plugin (https://github.com/SlexAxton/require-handlebars-plugin) oder epeli ist requirejs-hbs (https://github.com/epeli/requirejs-hbs) ?
Da diese Frage, die ich gefunden habe, dass ein anderer Weg, dies zu erreichen sein könnte, über Grunzen Uhr. Jedoch eine noch bessere Möglichkeit ist die Verwendung von Grunt und Browserify, überspringen RequireJS insgesamt. Dann werden Sie mit NPM-Pakete...und die meisten Bibliotheken verfügbar, mit RequireJS zu sein scheinen, erhältlich als NPM-Pakete als auch (erstaunlicherweise auch DOM-basierten Bibliotheken, wie jQuery, Backbone, Angular). Dann verwenden Sie synchrone require () - Aufrufe zu verlangen, Dinge:
Dies ist viel schöner, und es ist möglich, weil die app ist vollständig aufgebaut, jedes mal, wenn es läuft. Kombinieren Sie dies mit Grunt Watch, so dass Sie Ihre app erstellt sich jedes mal, wenn es eine änderung, und du bist im Geschäft.
Und den build-Prozess selbst kümmert sich um Gebäude LENKER Vorlagen. Um eine Vorlage, die Sie tun sollten
require('./templates/my-template.hbs');
und den build-Prozess für grunt-browserify finden, dass dieses require () - Aufruf, kompilieren Sie die Vorlage, und schließen Sie das kompilierte template in den app js-Datei.Viel schöner als RequireJS!
Dieser artcle über Require.js und LENKER helfen könnte http://seanamarasinghe.com/developer/requirejs-handlebars/