2014-05-22 14 views
94

Ho riscontrato un problema in cui le sourcemaps generate da Webpack utilizzando l'impostazione di configurazione sono disattivate di una riga quando utilizzo il debugger di Chrome devtools . Webpack è impostato all'interno di un'applicazione Ruby on Rails per generare un file JavaScript concatenato e non limitato composto da una dozzina di moduli. La maggior parte di questi moduli sono componenti ReactJS e vengono analizzati dal caricatore jsx. L'output di Webpack viene quindi incluso nel file application.js insieme ad altre librerie JavaScript generate da gemme.Sourcemaps disattivati ​​da una riga in Chrome, con Ruby on Rails, Webpack e React JS

Quando uso eval-source-map, non ci sono problemi. Qualcosa sull'uso di inline-source-map fa sì che i numeri di riga vengano eliminati di uno.

L'ispezione di JavaScript che non è un componente React ha ancora questo problema, quindi non penso sia correlato all'uso di jsx.

+4

Sembra che un lato consideri la prima riga come linea '0' e l'altra consideri linea '1'. Dovresti semplicemente scegliere una definizione e aggiustare il valore per tutto ciò che funziona nell'altro modo. –

+3

Se esiste un modo per regolare il valore che il browser utilizza per i numeri di riga nelle schede video, ciò potrebbe potenzialmente risolvere il problema. Da allora ho anche fatto un po 'di esercizio, e sembra che quando si utilizza Rails senza Pignoni che elabora il JS generato dal webpack, il problema scompare. Il numero di riga è disattivato solo quando si utilizza sia il Webpack che i pignoni. – paradasia

+1

Non ne ho idea. Stavo usando le sourcemaps di CoffeeScript con la libreria JS della mappa sorgente di Mozilla. Tutto andava bene tranne che l'argomento 'column' nel seguente codice è passato in 1 troppo alto:' window.onerror = function (message, url, line, column) {} '. Decrescente ha risolto quello. Nota: questo è specifico di Chrome, non conosco altri browser. –

risposta

3

C'era un bug in Chrome, prova la versione più recente, anche sulla vostra configurazione webpack provare a utilizzare diverse sourcemaps su DevTool provare tutti questi per vedere se si lavora per il programma di fonte in linea:

  • inline- fonte-map

  • economico-inline-fonte-map

per le altre configurazioni diverse:

  • economico-fonte-map

  • economico-modulo-source-map

  • economico-modulo-eval-source-map

su webpack config:

{ 

... 

devtool:'source-map' 

... 

}