0

次のような単一のファイルのフォールバックをrequireJSで構成する方法を理解しました:

    var skin = "christmas";

    requirejs.config({

    paths: {
        languagesLocal : [
            BaseUrl +  skin + '/js/languagesLocal',
            BaseUrl +  "default" + '/js/languagesLocal'

        ]
    }
});

「クリスマス」スキンがない場合は、デフォルトのスクリプトに着陸します。

今-私の質問は-完全なフォルダーをフォールバックフォルダーにするにはどうすればよいですか? そのため、1 つのファイルがスキン フォルダーに存在しない場合は、別のフォルダーにフォールバックがあります。各ファイルが存在するかどうかをチェックし、存在しない場合はデフォルトのフォルダーにフォールバックする必要があります

私はそれをやろうとしましたbaseUrl:

 var skin = "christmas";

        requirejs.config({

       baseUrl: [
        BaseUrl +  skin + '/js/',
        BaseUrl +  'default' + '/js/'
        ],
    });

しかし、それは失敗し、baseUrl を 2 つの文字列と組み合わされた 1 つの巨大な URL としてレンダリングします。

4

1 に答える 1

2

編集:あなたの質問を誤解しました。単一のモジュールで可能であることは知っています:

http://requirejs.org/docs/api.html#errbacks

この手法を使用すると、各モジュールの存在を確認するモジュールを作成できます。

loader.js

define(['a', 'b'], function(a, b) {}, 
   function(err) {
      if (err.requireModules) {
         for(var i = 0; i < err.requireModules.length; i++) {
            requirejs.undef(requireModules[i]);

            requirejs.config({
               baseUrl: BaseUrl +  'default' + '/js/'
            });
            require([requireModules[i]], function () {});
         }
      }
});
于 2012-12-20T13:24:36.320 に答える