Рабочий процесс для использования предварительно скомпилированных шаблонов ember/handlebars
Итак, мои Ember view настроены на использование внешних файлов шаблонов (.handlebars). Общий механизм таков. Я использую формат модуля requirejs:
define([
"ember",
"text!templates/drawer-menu.handlebars"
],
function(Ember, drawerMenu) {
var DrawerMenu = Ember.View.extend({
template: Ember.Handlebars.compile(drawerMenu),
});
return DrawerMenu;
});
Теперь я настроил свой проект так, чтобы я мог использовать GruntJS для таких вещей, как bundle, uglify, minify и pack всех файлов css & js.
Я также хотел бы предварительно скомпилировать мои шаблоны. Поэтому я установил https://github.com/dgeb/grunt-ember-templates, который прекрасно упаковывает все мои шаблоны в один файл js. Сгенерированный файл js выглядит так:
define(["ember"], function(Ember){
Ember.TEMPLATES["drawer-menu"] = Ember.Handlebars.template(
function anonymous(Handlebars,depth0,helpers,partials,data) {
....
return buffer;
});
);
Я понимаю, я должен теперь использовать Ember.TEMPLATES["drawer-menu"]
вместо Ember.Handlebars.compile(drawerMenu)
всякий раз, когда мне нужны данные шаблона.
Мой вопрос: как мне настроить рабочий процесс разработки? Я имею в виду
Должен ли я изменить свой код, чтобы всегда использовать предварительно скомпилированные шаблоны, и в этом случае мне всегда придется выполнять предварительную компиляцию и в моей среде разработки.
Если я не сделаю выше, то каждый раз, когда я собираюсь для производства, я должен вручную редактировать все файлы представления, чтобы использовать предварительно скомпилированные шаблоны. Что-то подвержено ошибкам.
Есть ли механизм для автоматической настройки?
1 ответ
Я бы переключился на ленивую загрузку шаблонов и всегда прекомпиляцию. Они получают откомпилированную клиентскую часть, и не так уж они полезны для отладки клиентской части.
var DrawerMenu = Ember.View.extend({
templateName: 'drawer-menu',
});