2016-04-01 14 views
5

जब मैं अपने जावास्क्रिप्ट स्रोत बदलने मैं अपने ब्राउज़र के कंसोल में निम्न संदेश मिल रहा है:webpack देव मिडलवेयर, कैसे autoreload जब HMR विफल रहता है

[HMR] निम्नलिखित मॉड्यूल गर्म अद्यतन नहीं किया जा सकता है: (पूर्ण रीलोड आवश्यक) यह आमतौर पर होता है क्योंकि मॉड्यूल जो बदल गए हैं (और उनके माता-पिता) यह नहीं जानते कि कैसे खुद को पुनः लोड करना है। अधिक जानकारी के लिए http://webpack.github.io/docs/hot-module-replacement-with-webpack.html देखें।

मेरा सवाल यह है कि जब मैं ऐसा होता हूं तो पेज को स्वतः पुनः लोड करने के लिए वेबपैक कैसे बता सकता हूं?

यहाँ अपने सर्वर की स्थापना की है:

app.use(morgan('dev')); 

     // Disable views cache 
     app.set('view cache', false); 

     var webpack = require('webpack'); 

     var webpackConfig = require('../client/webpack.config'); 
     var compiler = webpack(webpackConfig); 

     app.use(require("webpack-dev-middleware")(compiler, { 
      noInfo: true, publicPath: webpackConfig.output.publicPath 
     })); 
     app.use(require("webpack-hot-middleware")(compiler)); 

और मेरे webpack.config:

var path = require('path'); 
var AureliaWebpackPlugin = require('../node_modules/aurelia-webpack-plugin'); 
var webpack = require('../node_modules/webpack'); 

module.exports = { 
    entry: { 
     main: [ 
      'webpack-hot-middleware/client', 
      './client/src/main' 
     ] 
    }, 
    resolve: { 
     alias: { 
      breeze: 'breeze-client/build/breeze.debug', 
      resources: path.resolve(__dirname, 'src', 'resources'), 
      utils: path.resolve(__dirname, 'src', 'resources', 'utils', 'utils'), 
      tradestudyUtils: path.resolve(__dirname, 'src', 'resources', 'tradestudy-utils', 'tradestudy-utils') 
     } 
    }, 
    output: { 
     path: path.join(__dirname, 'client'), 
     filename: 'bundle.js', 
     publicPath: '/' 
    }, 
    devtool: 'eval', 
    plugins: [ 
     new webpack.optimize.OccurenceOrderPlugin(), 
     new webpack.HotModuleReplacementPlugin(), 
     new webpack.NoErrorsPlugin(), 
     new AureliaWebpackPlugin() 
    ], 
    module: { 
     //preLoaders: [ 
     // {test: /\.js$/, exclude: /node_modules/, loader: 'eslint-loader'} 
     //], 
     loaders: [ 
      { test: /\.scss$/, loaders: ['style', 'css', 'sass'] }, 
      { test: /\.js$/, loader: 'babel', exclude: /node_modules/, query: { presets: ['es2015-loose', 'stage-1'], plugins: ['transform-decorators-legacy'] } }, 
      { test: /\.css?$/, loader: 'style!css' }, 
      { test: /\.html$/, loader: 'raw' }, 
      { test: /\.(png|gif|jpg)$/, loader: 'url-loader?limit=8192' }, 
      { test: /\.woff2(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'url-loader?limit=10000&minetype=application/font-woff2' }, 
      { test: /\.woff(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'url-loader?limit=10000&minetype=application/font-woff' }, 
      { test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'file-loader' } 
     ] 
    } 
}; 

अग्रिम धन्यवाद?

उत्तर

7

आप पास कर सकते हैं parameterreloadwebpack-hot-middleware/client रहे हैं:

entry: { 
     main: [ 
      'webpack-hot-middleware/client?reload=true', 
      './client/src/main' 
     ] 
    }, 
+0

इस पूरे पृष्ठ को रीफ्रेश या यह वास्तव में 'हॉट मॉड्यूल प्रतिस्थापन "है? – soosap

+0

मेरे पास थोड़ा अलग सेटअप था, लेकिन मैंने एंटेलिया-बूटस्ट्रैपर से पहले 'वेबपैक-हॉट-मिडलवेयर/क्लाइंट? रीलोड = सच्चाई' प्रविष्टि में जोड़ा और यह गर्म मॉड्यूल प्रतिस्थापन था –

संबंधित मुद्दे