さて、AMD 形式でいくつかの異なるモジュールが書かれているプロジェクトに参加しました。これらの javascript ファイルを 1 つの javascript ファイルに大まかに関連付ける必要があります。このファイルは、異なるプロジェクト間で (おそらく CDN から) 別の AMD モジュールとして参照されます。
私が直面している問題は、これらのファイルに対して r.js を実行して 1 つのファイルにまとめたときです。結合したファイルを別のプロジェクトにプルすると、未定義として吐き出されます。
私が話していることのアイデアを与えるために
words.spelling.js
define(['jquery', 'some.other.class'], function($, foo){
...
}
words.grammar.js
define(['jquery', 'some.other.class'], function($, foo){
...
}
words.translation.js
define(['jquery', 'some.other.class'], function($, foo){
...
}
r.js を通り、words.min.js に移動します
次に、次のようにapp.jsにプルするとします。
require(['jquery', 'app/main/main', 'words.min'], function($, main, words) {
$(document).ready(function() {
console.log(words);
}
単語は未定義として表示されます。
それらをすべて連結するだけでは、何の役にも立ちません。
私は持っている偽のクラスを作成しようとしました
define(['word.grammar', 'word.translation', 'word.spelling'], function( g, t, s){
return {
grammar: g,
translation: t,
spelling: s
};
});
r.jsを介してそれを実行しますが、サイコロもありません。ここで何か不足していますか、それともこれらを非 AMD 形式で書き直して、それらを連結して 1 つの巨大なオブジェクトを返すことができるようにするつもりですか? words.min.js は、CDN でホストされ、多数のプロジェクトで共有されるため、キャッシュされる必要があることに注意してください。そのため、別のファイルとして必要です。