我在我的项目中使用Webpack实现热模块替换,它使用Node(v4.4.4)/ Hapi(v8.0.0)作为服务器。我认为可以让它工作的方式是在我的服务器文件中使用插件,如下所示:
`var compiler = new require('webpack')(webpackConfig.default);
var assets = { noInfo: false, publicPath: webpackConfig.default.output.publicPath };
var hot = { reload: true, noInfo: true };`
server.register({
register: require('hapi-webpack-plugin'),
options: {
compiler, assets, hot
}
},function(error) {
if (error) {
return console.error(error);
}
server.start(function() {
if (process.env.CONFIG_WINSTON === 'on') {
logger.info('Hapi', server.version, server.info.uri);
} else {
console.log('Hapi', server.version, server.info.uri);
}
});
});`
在我的webpack.config.js中,我使用我的条目:
entry: [
'webpack-hot-middleware/client?http://localhost:8080&reload=true',
'./webpack_common/src/scripts/main.js',
],
我还在webpack.config.js中添加了这个插件:
new webpack.HotModuleReplacementPlugin(),
最后我已经安装了软件包:
"webpack": "^2.2.1",
"webpack-dev-middleware": "^1.10.1",
"webpack-dev-server": "^2.4.4",
"webpack-hot-middleware": "^2.17.1",
"hapi-webpack-plugin": "^2.0.0",
通过所有这些设置,我可以使用Sass使我的HMR正常工作,这意味着它正在重建和更新我的浏览器。但是,当我更改任何javascript时,我会看到日志消息说一切顺利(捆绑包已重建),
`
[HMR] bundle rebuilding client.js?4b20:207
[HMR] bundle rebuilt in 11952ms process-update.js:27
[HMR] Checking for updates on the server... process-update.js:100
[HMR] Updated modules:
A list of updated modules comes here...
[HMR] App is up to date.`
但我在浏览器中看不到任何更新。如果我手动刷新浏览器,则更新显示正常。我测试了Chrome,Firefox和Safari,但它们似乎都没有用。我在foruns中搜索了许多其他问题,但没有运气。 任何人都对我可能需要做的事情有任何线索?