AMD/RequireJSで遊んだ後は、テンプレートやCSSを含むUIモジュールを読み込んで、Webページから完全に独立しているかどうかを知りたいのですか?
それは良いのように聞こえるが、私はこれが野生で実装されているのを見ていないので、落とし穴があるかもしれない。
次の構造のUIモジュールを考えてみましょう。
myWidget
|--img
|--main.js
|--styles.css
+--template.tpl
1つのフォルダ内のすべてのもの。非常にいいですね。
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);
}
}
}
});
今質問は次のとおりです:
テキストを使用して、テンプレートを依存関係として指定できます。あなたが示したようなモジュールです。私はMustache Templatesでこれを行います。
しかし、Require.jsはcssファイルを明示的にサポートしていません。
Here is the official explanation, it's explained pretty well: http://requirejs.org/docs/faq-advanced.html#css
編集:2012年2月
Templates such as handlebars can also be precompiled and included just like any other JS module http://handlebarsjs.com/precompilation.html
編集:2015年8月
この種のモジュール化の後であれば、ウェブパック、特に css-loader にアクセスしてください。私は.cssファイルと.jsxファイルを統一された "モジュール"として組み合わせ、ビルド時に関連するCSSを単一のスタイルシートに抽出します。
RequireJSのサードパーティのCSSプラグインがうまくいくようです: https://github.com/VIISON/ RequireCSS/。