2013-01-16 12 views
14

Ho appena iniziato a utilizzare RequireJS per caricare gli script per la mia pagina, ma ho colpito un roadblock durante il tentativo di eseguire il debug di un problema utilizzando chrome.Debugging/ricerca di script caricati da RequireJS

Diciamo che ho il mio script principale che si basa su due dipendenze: dep1 e dep2

require(["dep1", "dep2"], function(dep1, dep2) { 
    //do something 
}); 

Mentre eseguono test di unità mi accorgo che qualcosa in dep1.js non funziona correttamente, quindi apro Chrome dev strumenti per inserire un punto di interruzione, ad eccezione ...

missing dependencies

... dep1.js non esiste!

Come individuare il file di origine per inserire il punto di interruzione ?!

Sono sicuro che i file sono stati caricati mentre gli script vengono eseguiti correttamente. Non riesco a vederli nell'elenco delle fonti

+3

@downvoter - qualsiasi commento/motivo per downvoting? –

+0

Un altro modo per verificare/accedere alle origini caricate è tramite la scheda Rete in Strumenti per sviluppatori di Chrome. È possibile fare clic con il tasto destro del mouse sulla fonte per visualizzarla. – Fuhrmanator

risposta

5

finalmente capito il problema era che stavo usando r.js invece di require.js. Appena passato ho potuto vedere i file senza problemi.

Per inciso, una soluzione temporanea era inserire la riga in basso alla fine dei file inseriti. Questo appena circa ottiene chrome per raccogliere i file.

//@ sourceURL=GameWorldAction.js 
+1

Abbastanza interessante questo è stato il mio suggerimento un mese prima di aver postato questo (vedi sotto), ma non un singolo upvote .. –

+0

@RobbertvandenBogerd Non vedo alcuna risposta oltre a quella di jeremyawesome. Se intendi il tuo commento su quella risposta allora sì, è vero - avresti dovuto postarlo come una risposta separata! –

+0

@RobbertvandenBogerd +1 upboats dal futuro! – mix3d

1

Non si chiude mai l'array nell'esempio sopra riportato.

require(["dep1", "dep2", function(dep1, dep2) { 
    //do something 
}); 

dovrebbe essere:

require(["dep1", "dep2"], function(dep1, dep2) { 
    //do something 
}); 

Modifica in risposta ad aggiornare alla domanda:

io parto dal presupposto r.js è il file RequireJs. Sembra che RequireJS non stia caricando i file correttamente, se avesse avuto i file sarebbero stati mostrati nel tuo ispettore.

Si sta utilizzando l'attributo data-main sul tag script per specificare un file JS principale? In tal caso, i file dep1 e dep2 si trovano nella stessa directory del file JS principale? Potrebbe essere necessario specificare un diverso baseUrl se si sta tentando di caricare file da un percorso o dominio diverso. È possibile modificare baseUrl impostandolo in require.config.

<script> 
    require.config({ 
    //path can also be a domain like "//image.mydomain.tld/jscript" 
    baseUrl: "/another/path" 
    }); 
</script> 
+0

L'esempio è stato digitato direttamente in SO: l'array viene chiuso nel codice reale. Ho aggiornato la domanda –

+0

Sì, sto utilizzando l'attributo 'data-main' e i file si caricano definitivamente correttamente (lo vedo perché i miei test sono in esecuzione). In realtà sto specificando un 'baseUrl 'separato e alcuni mapping' path' ma non penso che sia il problema –

+0

Hai controllato: https://code.google.com/p/chromium/issues/detail? id = 146823 – jeremysawesome

Problemi correlati