2016-01-23 10 views
13

Sono in esecuzione il mio webpack-dev-server conChe cosa fa la modalità lazy del server di sviluppo webpack?

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

Tuttavia, questo mostra un errore 404 nel browser quando si tenta di accedere bundle.js.

Tutto il resto sembra soddisfacente, poiché se sostituisco --lazy con --hot, le cose funzionano correttamente.

Che cosa fa esattamente --lazy?

Aggiornamento:

Ecco il file webpack -

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

Potete mostrare il vostro file di configurazione webpack? – Kote

+0

@Kote ok l'ho aggiunto ora – pdeva

risposta

2

Dopo un po 'di debug ho scoperto che in webpack-dev-middleware (in webpackDevMiddleware funzione) c'è la seguente if:

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

La funzione rebuild() non viene mai eseguito perché options.filename.test(filename) away restituisce false. E questo perché il valore filename ha una barra ("/bundle.js"). Quindi, ho modificato l'espressione regolare options.filename per consentire questa barra e ha risolto il problema.

ho fatto una richiesta di pull su GitHub: https://github.com/webpack/webpack-dev-middleware/pull/62

0

Il modo pigro semplicemente non ricompilare ad ogni cambio, ma attende invece il prossimo Call al entrypoint per verificare le modifiche

+0

quindi perché non sta servendo il file 'bundle.js'? non dovrebbe compilare inizialmente all'avvio? – pdeva

0

Qui è la differenza tra --lazy e --hot:

--lazy: no watching, compiles on request. 

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

al quindi, trovare ulteriori informazioni su HotModuleReplacementPlugin qui: https://github.com/webpack/docs/wiki/list-of-plugins.

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

+0

cosa significa "richiesta" qui? una richiesta GET dal browser? – pdeva

+0

Sì, può essere GET richiesta di risorse come immagini/logo/js e/o file css ecc. –

+0

quindi perché il mio browser che fornisce una modalità 404 – pdeva

Problemi correlati