私はRequireJS noobです。 「require.config」を使用し、jQueryとは異なる名前のjQueryへのパスを含めると、結果は期待通りにはなりません。In RequireJS - パスにjQuery名をエイリアスできません。
ここでは、私の問題について簡単に説明します。ファイルの
構造ここで
<html>
<head>
<title>BackboneJS Modular app with RequireJS</title>
<script data-main="scripts/main" src="scripts/libs/require.js"></script>
</head>
<body>
<h3>BackboneJS is awesome</h3>
</body>
</html>
スクリプトタグの参照はスクリプト/ LIBSに必要
root
├── Index.htm
└── scripts
├── libs
│ ├── jquery-1.7.1.js
│ └── require.js
├── main.js
└── someModule.js
index.htmを。 requireが実行されると、scriptsディレクトリのmain.jsというJavaScriptファイルが実行されます。
main.js私の経験で
require.config({
"paths": {
"mod1": "someModule"
}
});
require(["mod1"], function (sm) {
console.log(sm.someValue);
});
「MOD1は、」それはrequire.configパスのと必要とする方法では、同じ参照されます限り、何もすることができます。ただ、完全性について
someModule.js
define([], function() {
console.log();
return { someValue: "abcd" };
});
私はjQueryのを含む場合、知覚心変わりが発生someModule.js
が含まれています。
次のmain.jsでは、jQueryをconfigとrequireメソッドに追加しました。 jQueryのすべての追加で
Main.js
require.config({
"paths": {
"jquery": "libs/jquery-1.7.1"
,"mod1": "someModule"
}
});
require(["mod1", "jquery"], function (sm, $) {
console.log(sm.someValue);
console.log($);
});
まだ動作しているようです。 "console.log($)"はjQuery関数を記述します。
今、キッカーです。次のコードでは、私は両方のパスに「jqueryA」に「jqueryのを」変更し、
require.config({
"paths": {
"jqueryA": "libs/jquery-1.7.1"
,"mod1": "someModule"
}
});
require(["mod1", "jqueryA"], function (sm, $) {
console.log(sm.someValue);
console.log($);
});
を必要と今「はconsole.log($)は、」nullを書き込みます。
これは期待する必要がありますか?その名前がjqueryでなければならない理由はありますか?mod1の場合は何でもかまいません。
私は問題なくこれを回避できますが、この問題は奇妙に見えます。私は、RequireJSとjQueryファイルを組み合わせて使うことができますが、jQueryにアップデートがある場合、新しいjQueryを含めるためにRequireJSに依存したくありません。
ありがとう!この知識で私は自分のjquery/requirejs問題を解決しました。 – bunnyhero