これが私の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プロパティは実際に何をしますか?スクリプトのエイリアスを作成していないようです。たとえば、exportsfor アンダースコアをに設定して"whatever"から にしようとするとconsole.log(whatever)、未定義になります。それで、ポイントは何ですか?jQuery のようなスクリプトを「グローバル」に適切に使用するにはどうすればよいでしょうか?
$つまり、App.js モジュール内、または "app" フォルダー内の他のモジュール内でエイリアスを使用できる適切な方法は何ですか? 個々のモジュールとエイリアスごとに毎回 jQuery を要求する必要があります$か? それとも、ここで行った方法は適切な方法ですか?
この特定のスクリプトに対するその他の批判も大歓迎です。私の意見では、Require.js のドキュメントには多くの要望が残されています。もっと知りたいと思っていたことが、ごまかされてしまい、頭を悩ませているようです。