После игры с AMD/RequireJS мне было интересно, стоит ли загружать модули пользовательского интерфейса, включая шаблоны и CSS, поэтому они полностью независимы от веб-страницы.
Звучит неплохо, но я не видел, как это реализовано в дикой природе, поэтому могут быть подводные камни.
Подумайте о некотором модуле UI со следующей структурой:
myWidget
|--img
|--main.js
|--styles.css
+--template.tpl
Все материалы в одной папке. Выглядит очень хорошо.
Модуль в main.js будет выглядеть примерно так:
define(["TemplateEngine", "text!myWidget/template.tpl"], function(TemplateEngine, template) {
// Load CSS (Pseudo Code)
var cssUrl = "myWidget/styles.css";
appendToHead(cssUrl);
return function() {
return {
render: function(data) {
return TemplateEngine.toHtml(template, data);
}
}
}
});
Теперь вопросы:
- Я что-то пропустил?
- Есть ли какие-либо плагины/концепции, как добиться этого "стандартным" способом?
- Может ли оптимизатор RequireJS обрабатывать часть CSS здесь, скажем, concat/minify таблицы стилей, как это делается с частями JS?
- Любые мнения по этому поводу? Хорошо или плохо?