私のアプリケーションのビルドファイルの実装を行った後、 私はこの動作がわかりました。
HTML
ファイルのファイルシステムから読み込まれ、その内容は、例えば、グローバルテンプレートオブジェクトに追加されます次のJSコードで
== myapp.html ==
<body>
<h1>Welcome to Meteor!</h1>
{{> hello}}
</body>
結果:だから
"myapp.html": function (require, exports, module) {
Template.body.addContent((function() {
var view = this;
return [
HTML.Raw("<h1>Welcome to Meteor!</h1>\n\n "),
Spacebars.include(view.lookupTemplate("hello"))];
}));
Meteor.startup(Template.body.renderToDocument);
Template.__checkName("hello");
Template["hello"] = new Template("Template.hello", (
function() {
var view = this;
return [
HTML.Raw("<button>Click Me</button>\n "),
HTML.P("You've pressed the button ",
Blaze.View("lookup:counter",
function() {
return Spacebars.mustache(view.lookup("counter"));
}), " times.")
];
}));
},
私たちのHTMLのすべてを:それはキーだとファイルの名前の関数でラップされ
Template.body.addContent((function() {
var view = this;
return [
HTML.Raw("<h1>Welcome to Meteor!</h1>\n\n "),
Spacebars.include(view.lookupTemplate("hello"))
];
}));
他のモジュールと同様にrequire
を使用して含まれる純粋なJSコードになりました。例えば、
ファイルは、ファイルシステムから読み込まれ、その内容は、JS関数でも埋め込まれて
CSSだから、私たちのCSSのすべてが今も再びrequire
を使用することにより、後に輸入されますJSモジュールである
"myapp.css": ["meteor/modules", function (require, exports, module) {
module.exports = require("meteor/modules").addStyles("/* CSS declarations go here */\n\nbody {\n background-color: lightblue;\n}\n");
}]
:
== myapp.css ==
/* CSS declarations go here */
body {
background-color: lightblue;
}
はに変身を取得します。
結論
すべてのファイルが一つの方法であるか、または別のは、AMD/CommonJSモジュールとして含めるための同様の規則に従うJSモジュールに変換されます。 別のモジュールがそれらを参照する場合、それらは組み込み/バンドルされます。
import '../imports/hello/myapp.html';
import '../imports/hello/myapp.css';
資産はJSモジュールに変換された後、彼らの両方がrequire
で自分の等価な形式にtranspiledされています。それらのすべては、JSコード に変換されるためと偽り、構文の背後に魔法ありません。
imports
ディレクトリに静的資産を配置する方法は公式ドキュメントには記載されていませんが、 静的資産をインポートするこの方法が機能します。
これはMeteorがどのように機能するかのように思われるので、この機能は長い間そこに存在するはずです。
この機能を呼び出すかどうかわかりませんが、より適切な説明は予期しない結果になる可能性がありますが、 はユーザーの観点からのみ真実です。コードを書いた人は、 これを故意にこのように設計しました。
CSSとHTMLをJavaScriptファイルにインポートする理由は何ですか?あなたは流星でこれを行う必要はありません。 –
許可されても、それを達成する他の方法があります。問題は残っていますか、バグか機能ですか? –
あなたはMeteorコミュニティですか?是非、この恩恵を忘れないでください!!! –