2014-05-22 19 views
9

Ho appena iniziato a utilizzare requirejs e sto avendo un problema che non riesco a risolvere. Ricevo occasionalmente errore "JavaScript di Bootstrap richiede jQuery" quando carico la mia applicazione. Qui ci sono i file pertinenti:Intermittente "JavaScript Bootstrap richiede jQuery" Errore

.HTML

<html> 
<head> 
<link href="./css/bootstrap.min.css" rel="stylesheet"> 
<link href="./css/custom.css" rel="stylesheet"> 
<script data-main="scripts/main" src="scripts/vendor/require.js"></script> 
</head> 
<body> 
... 
</body> 

mia require.config da file main.js:

requirejs.config({ 
    baseUrl : './scripts', 
    shim : { 
     underscore : { 
      exports : '_' 
     }, 

     bootstrap : { 
      dep : [ 'jquery'], 
      exports: 'Bootstrap' 
     }, 

     backbone : { 
      deps : [ 'jquery', 'underscore' ], 
      exports : 'Backbone' 
     }, 

     marionette : { 
      deps : [ 'jquery', 'underscore', 'backbone' ], 
      exports : 'Marionette' 
     }, 

     text: { 
      deps : [ 'jquery', 'underscore', 'backbone' ], 
      exports: 'Text' 
     } 
    }, 

    paths : { 
     jquery : 'vendor/jquery.min', 
     underscore : 'vendor/underscore', 
     bootstrap : 'vendor/bootstrap.min', 
     backbone : 'vendor/backbone', 
     marionette : 'vendor/backbone.marionette', 
     text: 'vendor/text' 
    } 
}); 

Come ho detto, questo non accade per tutto il tempo, basta a caso. Qualcuno può vedere cosa sto facendo male o come potrei essere in grado di rintracciare il problema?

Grazie

risposta

11

In questa parte della vostra configurazione:

bootstrap : { 
      dep : [ 'jquery'], 

Dovrebbe essere non depsdep. Con dep, è come se non avessi specificato alcuna dipendenza, il che significa che Bootstrap caricherà correttamente solo se jQuery avviene prima di essere caricato. (Inoltre, Bootstrap non definisce un simbolo Bootstrap in modo che il bit exports sia inutile.)

+0

Grazie Louis! Questo è risolto. – DaveR

+2

Maledetto uomo, 6 mesi ho avuto quell'insetto nascosto nel mio spessore! Grazie mille. – MrYellow

+0

Funziona, ma gli spessori non dovrebbero essere usati solo per moduli non AMD? – Legends

Problemi correlati