2016-01-23 5 views
13

ich meine webpack-dev-Server mitWas macht der Lazy-Modus des Webpack-Dev-Servers?

webpack-dev-server --lazy --inline --progress --colors --port 8082 

läuft jedoch zeigt dies einen 404-Fehler in meinem Browser, wenn er versucht bundle.js zuzugreifen.

Alles andere scheint gut, da, wenn ich --lazy mit --hot ersetze, Dinge gut funktionieren.

Was genau macht dann --lazy?

Update:

Hier ist die webpack Datei -

module.exports = { 
    devtool: "source-map", 
    entry: [ 
     'webpack/hot/only-dev-server', // "only" prevents reload on syntax errors 
     "./app/main.js" 
    ], 
    output: { 
     path: "./js", 
     filename: "bundle.js" 
    }, 
    module: { 
     loaders: [ 
      { test: /\.css$/, loader: "style-loader!css-loader"}, 
      { test: /\.js$/, exclude: /node_modules/, loaders: ["react-hot"] } 
     ] 
    } 
}; 
+0

Können Sie Ihre webpack Konfigurationsdatei zeigen? – Kote

+0

@Kote ok ich habe es jetzt hinzugefügt – pdeva

Antwort

2

Nach einiger Debuggen fand ich, dass in webpack-dev-middleware (in webpackDevMiddleware Funktion) gibt die if-Anweisung folgende ist:

// in lazy mode, rebuild on bundle request 
if(options.lazy && (!options.filename || options.filename.test(filename))) { 
    rebuild(); 
} 

Die rebuild() Funktion nie ausgeführt wird, weil options.filename.test(filename) aways false zurückgibt. Und das ist, weil filename Wert einen Schrägstrich ("/bundle.js") hat. Also habe ich die options.filename Regex geändert, um diesen Schrägstrich zuzulassen und das Problem wurde behoben.

Ich habe eine Pull-Anforderung auf GitHub: https://github.com/webpack/webpack-dev-middleware/pull/62

0

Der faule Modus einfach nicht bei jeder Änderung nicht neu kompilieren, sondern wartet stattdessen den nächsten Aufruf der Einstiegspunkt für Änderungen zu überprüfen

+0

also warum serviert es nicht die 'bundle.js' Datei überhaupt? Soll es beim Start nicht kompiliert werden? – pdeva

0
Hier

ist der Unterschied zwischen --lazy und --Heißes:

--lazy: no watching, compiles on request. 

--hot: adds the HotModuleReplacementPlugin and switch the server to hot mode. 

Al So finden Sie weitere Informationen zu HotModuleReplacementPlugin hier: https://github.com/webpack/docs/wiki/list-of-plugins.

Siehe: http://webpack.github.io/docs/webpack-dev-server.html

+0

Was bedeutet "Anfrage" hier? eine GET-Anfrage vom Browser? – pdeva

+0

Ja, es kann sein GET Anfrage für Ressourcen wie Bilder/Logo/Js und/oder CSS-Dateien etc. –

+0

also warum ist mein Browser geben eine 404 – pdeva