2015-05-24 5 views
8

Ich war Webpack, und vor kurzem aktualisiert einige Pakete (babel, babel-loader, ..) und sehen einen Fehler in der Webpack-Ausgabe. aber nicht sicher, wie man weiter debuggt. Die Anwendung scheint gut zu funktionieren. Ich habe versucht mit verschiedenen Debug-Optionen, aber keine ausführliche Ausgabe des Fehlers.webpack ausführliche Fehlermeldung

./node_modules/.bin/webpack --config webpack.config.js --progress --profile --colors --display-error-details --display-reasons --debug 
NODE_ENV == production : false 
6809ms build modules  
14ms seal 
55ms optimize 
30ms hashing 
59ms create chunk assets 
27ms additional chunk assets 
1551ms optimize chunk assets 
33ms optimize assets 
83ms emit 
Hash: 5be1a8485c4110c2f837 
Version: webpack 1.9.8 
Time: 8674ms 
     Asset  Size Chunks    Chunk Names 
mww7few.ttf 78.4 kB   [emitted] 
elilql0.png 7.47 kB   [emitted] 
    client.js 3.98 MB  0 [emitted] main 
index.html 130 bytes   [emitted] 
    [0] multi main 52 bytes {0} [built] 
     factory:0ms building:3ms = 3ms 
    + 387 hidden modules 

ERROR in undefined 

Ich bin mir nicht sicher, was das ist ERROR in undefined. Ich vermute ein Problem mit einem Loader, als ich babel-loader aktualisierte, aber nicht sicher, wie ich mehr wissen soll.

Antwort

1

@bsr

Ich hatte vor kurzem das gleiche Problem. Es stellt sich heraus, dass es von HtmlWebpackPlugin stammt. Ich habe vergessen, ein Titel, den ich dieses <title>{%=o.htmlWebpackPlugin.options.title

So

hatte

new HtmlWebpackPlugin({ 
    .... 
    title: 'Title' 
}), 

Und auf meiner Vorlage passieren Wenn Sie HtmlWebpackPlugin verwenden, stellen Sie sicher, dass Sie dort alle Parameter übergeben.

+0

danke für den Hinweis. Es ist jedoch nicht HtmlWebpackPlugin für mich. aber das gab mir einen Hinweis. Ich werde erneut nach der Konfiguration meiner Plugins suchen.+1 – bsr

+0

versuchen Sie, eine leere Funktion, 'function hallo() {}' dann verwenden Sie das als Einstiegspunkt, sehen Sie, ob etwas mit Ihrer Webpack-Konfiguration nicht stimmt. Wenn der Fehler verschwindet, dann etwas über Ihren Code, sonst können Sie jedes Plugin entfernen. – chriz

+0

danke. Deine Intuition hatte Recht. https://github.com/ampedandwired/html-webpack-plugin/issues/50. Außerdem hilft mir Ihre Debugging-Methode, die Ursache zu identifizieren. Danke vielmals. – bsr

2

Dies ist ein Fehler in der webpack-html-Plugin-Version 1.4 und wurde in 1,5

Der Grund für den Fehler behoben ist, dass o.htmlWebpackPlugin.assets veraltet.
sollten Sie o.htmlWebpackPlugin.files stattdessen verwenden zu können, CSS und Manifest-Dateien verwenden:

<!DOCTYPE html> 
<html{% if(o.htmlWebpackPlugin.files.manifest) { %} manifest="{%= o.htmlWebpackPlugin.files.manifest %}"{% } %}> 
    <head> 
    <meta charset="UTF-8"> 
    <title>{%=o.htmlWebpackPlugin.options.title || 'Webpack App'%}</title> 
    {% if (o.htmlWebpackPlugin.files.favicon) { %} 
    <link rel="shortcut icon" href="{%=o.htmlWebpackPlugin.files.favicon%}"> 
    {% } %} 
    {% for (var css in o.htmlWebpackPlugin.files.css) { %} 
    <link href="{%=o.htmlWebpackPlugin.files.css[css] %}" rel="stylesheet"> 
    {% } %} 
    </head> 
    <body> 
    {% for (var chunk in o.htmlWebpackPlugin.files.chunks) { %} 
    <script src="{%=o.htmlWebpackPlugin.files.chunks[chunk].entry %}"></script> 
    {% } %} 
    </body> 
</html> 

gibt jedoch noch einen einfacheren Weg.
Das webpack-html-plugin 1.3+ hat eine Funktion, die alle Assets (CSS, Favicon, Javascript und Manifest-Dateien) in Ihre Vorlage einfügt. So könnte Ihre Konfiguration wie folgt aussehen:

new HtmlWebpackPlugin({ 
    inject: true, 
    template: 'template.html', 
    title: 'Custom template', 
}) 

und die Vorlage:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8"> 
    <title>{%=o.htmlWebpackPlugin.options.title || 'Webpack App'%}</title> 
    </head> 
    <body> 
    </body> 
</html> 
1

Falls jemand auf diese Frage bekommt, und es ist nicht ein Problem mit htmlWebpackPlugin, IMO die eigentliche Frage ist, in Webpack selbst, die nicht den richtigen Fehler liefert.

Offenbar versucht diese PR es

https://github.com/webpack/webpack/pull/1146

Wir Plugins müssen wir lösen verwenden, die Fehler wurden thowing, die Strings waren. Allerdings waren die Fehler, die berichtet wurden,

Fehler undefined, die wenig bis keine Hilfe war. Jetzt bekommen wir tatsächlich die Fehlermeldung, die wir brauchen.

Stats jetzt Fehlerberichterstattung fängt Zeichenfolge Fehler. Einige Plugins erscheinen , um die Regeln zur Fehlerberichterstattung nicht zu befolgen. Dies macht jedoch das Debuggen von zu einem Albtraum für Benutzer. Daher sollte die Zeichenfolge erlaubt sein.