これが私のconfig.jsまたはmain.jsであるとしましょう:
require.config({
// paths are analogous to old-school <script> tags, in order to reference js scripts
paths: {
jquery: "libs/jquery-1.7.2.min",
underscore: "libs/underscore-min",
backbone: "libs/backbone-min",
jquerymobile: "libs/jquery.mobile-1.1.0.min",
jquerymobilerouter: "libs/jquery.mobile.router.min"
},
// configure dependencies and export value aliases for old-school js scripts
shim: {
jquery: ["require"],
underscore: {
deps: ["jquery"],
exports: "_"
},
backbone: {
deps: ["underscore", "jquery"],
exports: "Backbone"
},
jquerymobilerouter: ["jquery", "backbone", "underscore"],
jquerymobile: ["jquery", "jquerymobilerouter", "backbone", "underscore"]
}
});
require(["jquery", "backbone", "underscore", "app/app.min", "jquerymobilerouter", "jquerymobile"], function ($, Backbone, _, App) {
console.log($);
console.log(Backbone);
console.log(_);
$("body").fadeIn(function () {
App.init();
});
});
私の理解が正しければ、構成オプションを使用すると、 HTML 内
paths
のタグなどのスクリプトを参照できます。これが事実であると仮定すると、以下の実際のrequireステートメントで、<script>
jQueryのようなスクリプトにa$
またはアンダースコアでエイリアスを付ける必要がありますか? 標準タグでjQuery を参照すると、スクリプト全体で自動的に使用できることを_
考えると、そうしなければならないのは奇妙に思えます。を使用しても同じではないでしょうか?<script>
$
paths
私は
shim
構成オプションを初めて使用します。これは、非推奨のorder!
プラグインに取って代わったことを理解しています。exports
プロパティは実際に何をしますか?スクリプトのエイリアスを作成していないようです。たとえば、exports
for アンダースコアをに設定して"whatever"
から にしようとするとconsole.log(whatever)
、未定義になります。それで、ポイントは何ですか?jQuery のようなスクリプトを「グローバル」に適切に使用するにはどうすればよいでしょうか?
$
つまり、App.js モジュール内、または "app" フォルダー内の他のモジュール内でエイリアスを使用できる適切な方法は何ですか? 個々のモジュールとエイリアスごとに毎回 jQuery を要求する必要があります$
か? それとも、ここで行った方法は適切な方法ですか?
この特定のスクリプトに対するその他の批判も大歓迎です。私の意見では、Require.js のドキュメントには多くの要望が残されています。もっと知りたいと思っていたことが、ごまかされてしまい、頭を悩ませているようです。