2013-06-05 9 views
6

Le mappe di origine sono molto utili per il debug di script minimizzati o lingue tradotte (ad esempio CoffeeScript) ma il browser fornisce un output minimo per la risoluzione del motivo per cui la mappatura non funziona. Qualcuno ha una lista di controllo che può essere utilizzata per trovare dove la mappatura va male. In questo momento ho la configurazione di lavoro sul mio ambiente di sviluppo locale, ma quando si tenta di distribuirlo sul nostro server di staging "non funziona".Risoluzione dei problemi relativi alle mappe di origine del browser

Le cose che mi hanno verificato sono gli stessi tra il mio l'ambiente di staging locale e:

mappe Fonte
  1. sono abilitati nella finestra di ispezione Opzioni
  2. Il file package.min.js è servita da/js
  3. i package.min.js contiene la stessa linea di //@ sourceMappingURL=package.min.js.map
  4. la fonte + fonte mappa minified generato da uglify-js2
  5. i file originali sono accessibili a/js

Una differenza che posso vedere è che la dimensione della mappa di origine generata è leggermente diversa e il file nell'attributo source dell'hac di sourcemap ha un ordine leggermente diverso. Ma la mappa sorgente è abbastanza grande quindi non è banale verificare che in realtà non sia diverso in maniera significativa.

+0

Si potrebbe provare a utilizzare http://murzwin.com/base64vlq.html - può produrre un output leggibile dai mapping Base64-VLQ. –

+0

Ho esattamente lo stesso problema. Alcune delle mie schede video non vengono onorate per qualche motivo, ma non ho idea del perché ... – LordOfThePigs

risposta

1

Le mappe di origine (ei file di origine originali) vengono recuperati tramite HTTP. Guarda i log del tuo server per vedere cosa effettivamente richiede il browser.

Inoltre: //@is going to be replaced con //#.

+2

Voglio sottolineare che questo cambiamento è in futuro. La versione di uglify attualmente utilizzata dal [task grunt] (https://npmjs.org/package/grunt-contrib-uglify), emette il nuovo formato '// #' ma la versione corrente di Chrome (27.0 .1453.116) sembra supportare solo il vecchio formato '// @'. Mi faceva impazzire finché non l'ho capito. –