2015-11-19 4 views
7

Ich habe .ts Dateien kompiliert zu .js und .js.map Dateien von meinem Editor und bin die .js Dateien mit Webpack bündeln. (Ich will nicht webpack verantwortlich sein für die .ts kompilieren, weil dann nicht die Fehler richtig im Editor angezeigt.)Webpack verwenden vorhandene Quellkarte von vorherigen Build-Schritt

Wenn ich die kompilierten .js Dateien webpack füttern es nicht die bestehende .js.map abholen Dateien (über //# sourceMappingURL=... in jeder Datei), und so die bundle.js.map Punkte auf die .js Dateien, aber nicht auf die ursprünglichen .ts Dateien.

Wie bekomme ich Webpack, um auf den vorhandenen .js.map Dateien zu halten, so dass die resultierende bundle.js.map Punkte direkt zurück zu den ursprünglichen .ts Dateien?

Antwort

6

Es stellt sich eine zusätzliche webpack "preloader" rief source-map-loader funktioniert der Trick:

$ npm install source-map-loader --save 

Dann in webpack.config.js:

module.exports = { 
    // ... 
    devtool: 'source-map', 
    module: { 
     preLoaders: [ 
      { 
       test: /\.js$/, 
       loader: 'source-map-loader' 
      } 
     ] 
    } 
}; 
+0

Ich bin mit genau dem gleichen Problem konfrontiert, aber obwohl ich Ihre successed config und den installierten Source-Map-Loader verwende, habe ich Warnungen bekommen, dass ich einen "passenden Loader" für ".js.map" Dateien benötige, siehe hier: http://Stackoverflow.com/q/42717935/1731095 Könnten Sie Ihre vollständige Konfiguration und Ihre package.json posten? Das wäre sehr hilfreich! – kraftwer1

+0

@ kraftwer1 Ich kann nicht, weil sie in einer proprietären Codebasis sind, aber ich kann nichts in ihnen sehen, das auch dafür benötigt würde, um zu funktionieren. Wenn es hilft, benutze ich Webpack 1.14 und Source-Map-Loader 0.1.6. – Jesse

+0

Vielen Dank. Ich habe versucht, die exakt gleiche Version wie Sie zu verwenden. Leider lehnt es immer noch ".map.js" -Dateien ab. Keine Ahnung warum ... – kraftwer1

0

Ich will nicht webpack für die Erstellung der .ts verantwortlich sein, weil dann die Fehler nicht richtig im Editor erscheinen

Sie würden auf Ihrem Editor abhängig. Z.B. atom-typescript hat eine Option, mit der Sie compileOnSavehttps://github.com/TypeStrong/atom-typescript/blob/master/docs/tsconfig.md#compileonsave deaktivieren können, aber es zeigt Ihnen immer noch Fehler.

Dann können Sie auch konfigurieren webpack z. https://github.com/TypeStrong/ts-loader#options, um Ihnen auch Compilerfehler zu geben.

Wie kann ich webpack auf die vorhandenen .js.map Dateien zu halten, so dass die resultierenden bundle.js.map Punkte gleich wieder auf die ursprünglichen .ts Dateien

Der einfachste Weg ist, zu erhalten der Lader dies für Sie tun, was ts-loader tut

+0

Vielen Dank für Ihre Antwort. Der fragliche Editor ist PHPStorm/WebStorm und ich denke, es muss die '.ts' kompilieren, um die Fehler zu bekommen. Ein zweiter Grund, warum ich das '.ts' kompilieren möchte, ist, dass' .js' Dateien auf dem Dateisystem bereit sind, um von Node.js-Skripten eingebunden zu werden. – Jesse