2013-03-03 5 views
6

Мы используем requirejs в первый раз, и у меня возникают проблемы с структурированием моих зависимостей.Requirejs - Конфигурирование требуется до загрузки данных main

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

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

Но, у меня есть файл, который определяет все мою конфигурации требуется путь/регулировочной и Я хочу, чтобы это выполнялось до файла 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> 

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

Любые предложения?

+2

Попробуйте поместить параметры конфигурации shim/path в 'var require = {}' –

ответ

4

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

Например:

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

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

+0

В итоге я сделал что-то очень похожее, чтобы получить эффект «цепочки». Я создал файл init.js в качестве моей основной базы данных, а внутри него: 'require (['config'], function (appConfig) { require (['app'], function (app) { require (['appStart']); }); }); ' ** config ** - содержит конфигурацию требуемых путей. ** приложение ** - создает объект приложения и некоторые другие функции инициализации. ** appStart ** - запуск запуска приложения. – elanh