Как сделать откат ко всей папке в requireJS

Я понял, как я могу настроить в requireJS запасной вариант для одного файла, например так:

    var skin = "christmas";

    requirejs.config({

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

        ]
    }
});

так что в случае, если не будет "рождественского" скина, я получаю сценарий по умолчанию.

Теперь - мой вопрос - Как мне сделать полную папку резервной? поэтому, если один файл не существует в папке скина, он будет иметь запасной вариант в другой папке. Мне нужно, чтобы каждый файл был проверен, если он существует, и если нет, он должен иметь запасной вариант в папке по умолчанию

Я пытался сделать это с baseUrl:

 var skin = "christmas";

        requirejs.config({

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

но он терпит неудачу и отображает baseUrl в виде одного огромного URL в сочетании с 2 строками.

1 ответ

Решение

Изменить: я неправильно истолковал ваш вопрос. Я знаю, что это возможно для отдельных модулей:

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

С помощью этой техники вы можете создать модуль, который будет проверять существование каждого модуля:

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 () {});
         }
      }
});
Другие вопросы по тегам