Requirejs — настройка require перед загрузкой data-main

Мы используем requirejs в первый раз, и у меня возникли проблемы со структурированием моих зависимостей.

Я определил свой основной файл app.js как атрибут data-main в моем index.html:

<script data-main="src/app" src="/js/lib/require/require.js"></script>

Но у меня есть файл, который определяет все мои требуемые конфигурации пути/прокладки, и я хочу, чтобы он запускался перед файлом app.js. Мне нужно, чтобы он работал, чтобы я мог ссылаться на настроенные пути как на зависимости в моем app.js.

Я не думаю, что правильный способ - поместить мой config.js в качестве основного данных. Я попытался установить config.js как зависимость следующим образом:

   <script type="text/javascript">
        var require = {
            baseUrl: "/",
            deps: ["src/config"]
        }
    </script>
    <!-- data-main is the main js file of the app -->
    <script data-main="src/app" src="/js/lib/require/require.js"></script>

но это не помогло.

Какие-либо предложения?


person elanh    schedule 03.03.2013    source источник
comment
Попробуйте поместить параметры конфигурации shim/path в var require = {}   -  person Simon Smith    schedule 03.03.2013


Ответы (1)


В моем случае я загружаю config.js в app.js, чтобы поделиться конфигурацией для каждой страницы.

Например:

require(['config'], function(){
  require(['module','another'], function(){
    // run with all modules
  });
});

Чтобы оптимизировать этот проект, использование has.js является лучшим способом уменьшить количество HTTP-соединений. Дополнительные сведения см. в этом примере проекта.

person Kengo TODA    schedule 04.03.2013
comment
Я закончил тем, что сделал что-то очень похожее, чтобы получить эффект цепочки. Я создал файл init.js в качестве основного файла данных и внутри него сделал следующее: require(['config'], function (appConfig) { require(['app'], function(app){ require(['appStart']); }); }); config — содержит конфигурацию требуемых путей. приложение — создает объект моего приложения и некоторые другие функции инициализации. appStart — кик запускает приложение. - person elanh; 05.03.2013