2012-09-07 3 views
5

Quando si preme F5 per ricaricare la mia app a volte si generano errori ea volte no.RequireJS funziona in modo incoerente

Sto eseguendo il debug con Chrome. A volte i rapporti console questo errore:

Uncaught ReferenceError: unit_directionals is not defined 

volte getta che un punto di riferimento non è definita come in questo caso per jquery: "ReferenceError Uncaught: jQuery non è definire"

Che cosa può essere sbagliato se ho definito i file nel modo corretto?

questo è il codice che ho nelle main.js indicate nell'indice principale html:

requirejs.config({ 
    baseUrl: 'js/lib', 
    paths:{ 
     app:'../app', 
     models: '../app/models', 
     views: '../app/views' 
    } 
}) 

requirejs(
    [ 
     //load lib in this order 
     'underscore', 'handlebars', 'jquery','backbone', 'uri', 
     //load models, views... 
     'app/models/items.model', 'app/models/results.model', 
     'app/views/items.view', 'app/views/results.view', 
     'app/index' 
    ], 
    function(jQuery,$,_....) { 
     //init app 
    } 
); 
+1

Sembra lo stesso problema che ho postato qui: http://stackoverflow.com/questions/10959095/intermittent-requirejs-load-error. C'è anche una discussione su Google Gruppi a riguardo: https://groups.google.com/forum/?fromgroups#!topic/requirejs/Eym3R08Bmmg. Stiamo ancora cercando di trovare una soluzione. – redhotvengeance

+1

Se trovi una soluzione per favore fammi sapere bro, lo aprirò davvero !!! –

+0

Abbiamo riscontrato questo problema. Risolto jQuery è stato incluso due volte causando errori di script casuali su F5. jQuery è stato incluso Once in require e un altro in un tag script su una vista parziale MVC. Abbiamo rimosso il tag script jQuery dalla vista e ora funziona bene; può F5 tutto il giorno. Che mal di testa! – Noobie3001

risposta

10

requirejs carichi moduli asincroni e possono caricare su ordine - essi non sono garantite caricare nell'ordine specificato nella chiamata richiesta. Se lo script è un modulo AMD e le chiamate define() con le sue dipendenze, questo non è un problema.

Tuttavia, se lo script utilizza solo globali del browser e dipendenze implicite, come il backbone e probabilmente il manubrio, allora lo shim config è necessario per esprimere correttamente le dipendenze e il valore di esportazione.