従おうとしていたいくつかのチュートリアルに基づいて、コードが想定どおりに機能しない理由を突き止めるために、過去数時間を費やしました。つまりね。Backbone での Require.js の使用に関する多くのチュートリアルや記事には、次のようなコードがあります。
define(["jquery", "underscore", "backbone"], function($, _, Backbone){
return function(){
/* Some instantiation of Backbone stuff */
};
});
このコードを実行しようとすると、コンソールに「Backbone is undefined」と表示されます。奇妙なことは、jQuery オブジェクトが正常に $ にインスタンス化されたことです。未定義の「_」と「バックボーン」だけでした。だから私はいくつかの検索を行い、use.jsに出くわしました
backbone の主な貢献者が、require.js に適合させるためだけに Backbone.js のコードを変更したくなかったため、use.js が誕生したとのことで、理解しています。そこで、use.js を使用して、require の構成内でバックボーンの依存関係の設定を次のように指定しようとしました。
require.config({
use: {
'backbone': {
'deps': ['use!underscore', 'jquery'],
'attach': 'Backbone'
},
'underscore': {
'attach': '_'
}
}
});
そして、このコードを追加し、「アンダースコア」と「バックボーン」を要求する代わりに元の定義から「use!backbone」を呼び出すと、最終的に機能します。しかし、ここで何が起こっているのかわかりません。Backbone を機能させるためにこのすべての作業を行わなければならない場合、なぜそれらすべての記事やチュートリアルでこの事実が言及されていないのでしょうか? これをすべて行わなくても、彼らのバージョンは正常に動作するようです。何か変わった?
また、バックボーンを処理するためにrequire.jsを使用する唯一の方法ですか? もっと簡単な方法はありますか?(最新の方法)