2013-03-03 18 views
6

Stiamo usando requirejs per la prima volta, e ho problemi a strutturare le mie dipendenze.Requirejs - La configurazione richiede prima di caricare i dati-principale

ho definito il mio file app.js principale, come l'attributo data-principale nel mio index.html:

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

Ma, ho un file che definisce tutti i miei richiedono configurazioni percorso/Shim, e Voglio che venga eseguito prima del file app.js. Ho bisogno che venga eseguito in modo da poter fare riferimento ai percorsi configurati come dipendenze nella mia app.js.

Non penso che il modo giusto sia di mettere il mio config.js come il data-main. Ho provato a installare i config.js come dipendenza come questo:

<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> 

ma che non ha aiutato.

Qualche suggerimento?

+2

Provare a inserire le opzioni di configurazione shim/percorso in 'var require = {}' –

risposta

4

Nel mio caso, carico config.js in app.js per condividere la configurazione per ogni pagina.

Per esempio:

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

Per ottimizzare questo progetto, utilizzando has.js è il modo migliore per ridurre la connessione HTTP. Per maggiori dettagli, vedi this sample project.

+0

Ho finito per fare qualcosa di molto simile per ottenere l'effetto "concatenamento". Ho creato un file init.js come il mio data-main, e al suo interno ho fatto: 'require (['config'], function (appConfig) { require (['app '], function (app) { require (['appStart']); }); }); ' ** config ** - contiene la configurazione dei percorsi obbligatori. ** app ** - crea il mio oggetto app e alcune altre funzioni di inizializzazione. ** appStart ** - il calcio avvia l'app. – elanh

Problemi correlati