2017-01-14 5 views
1

Я пытаюсь использовать Webpack для перезагрузки как моего клиентского, так и серверного кода. Конфигурация, которую я имею в данный момент, будет автоматически восстанавливать файлы, когда я запускаю команду webpack-dev-server. Но ничего не обновляется в браузере, даже если я вручную обновить его, то же самое содержание на экранеWebpack backend и frontend hot reloading

var webpack = require('webpack'); 
var path = require('path'); 
var fs = require('fs'); 

var nodeModules = {}; 
fs.readdirSync('node_modules') 
    .filter(function(x) { 
     return ['.bin'].indexOf(x) === -1; 
    }) 
    .forEach(function(mod) { 
     nodeModules[mod] = 'commonjs ' + mod; 
    }); 

module.exports = { 
    entry: [ './server/server.js', './client/app.js'], 
    target: 'node', 
    output: { 
     path: path.join(__dirname, 'build'), 
     filename: '[name].js' 
    }, 
    module: { 
     loaders: [{ 
      exclude: /node_modules/, 
      loader: 'babel' 
     }] 
    }, 
    resolve: { 
     extensions: ['', '.js', '.jsx'] 
    }, 
    externals: nodeModules, 
    devServer: { 
     historyApiFallback: true, 
     contentBase: './' 
    } 
}; 
+0

Проверить результирующий пакет (написать уникальную строку в источнике), действительно ли он перекомпилирован. Проверьте любое кэширование, которое вы можете использовать. – oklas

+0

Спасибо за ваш ответ. Я проверил и перекомпилирует. Я не использую никакого кэширования на данный момент – Mantis

+0

Добавьте этот ** встроенный ключ ** в 'devServer: {inline: true}' или запустите devServer следующим образом: 'webpack-dev-server -inline'. – sahil

ответ

1

Существует времени выполнения API встроен в среде для ГМР, что вы должны взаимодействовать. Как минимум, вам нужно добавить следующее где-то в вашем Entrypoint сценария:

if (module.hot) { 
    module.hot.accept() 
} 

Посмотрите на code sample, представленной в новой документации, чтобы получить лучшее представление.