我有webpack.config.js
这样的:
module.exports = {
entry: [
'webpack-dev-server/client?http://0.0.0.0:8090', // WebpackDevServer host and port
'webpack/hot/only-dev-server', // "only" prevents reload on syntax errors
'./public/js/app.jsx' // Your appʼs entry point
],
debug: true,
output: {
path: __dirname,
filename: filelocation,
publicPath: 'http://localhost:8090/',
hotUpdateChunkFilename: 'hot/[id].[hash].hot-update.js',
hotUpdateMainFilename: 'hot/[hash].hot-update.json'
},
module: {
loaders: [{
// test: /\.jsx?$/,
loaders: ['react-hot','babel?presets[]=es2015,presets[]=react'],
include: [
path.resolve(__dirname, "./public/js"),
],
exclude: [
path.resolve(__dirname, "node_modules"),
]
}],
resolve: {
extensions: ['', '.js', '.jsx']
}
},
plugins: [new webpack.HotModuleReplacementPlugin()]
};
当我运行webpack --watch
它时,它运行良好。当我进行更改时,它会在我的目录下生成hot-update.js
/ 。json
hot
我有我的 webpack 开发服务器,它看起来像这样:
new WebpackDevServer(webpack(config), {
publicPath: config.output.publicPath,
hot: true,
}).listen(8090, 'localhost', function (err, result) {
if (err) {
return console.log(err);
}
});
我运行webpack --watch
和 webpack 开发服务器并行。我可以进行更改,并且 webpack 正在将更改推送到hot
目录。但在我的浏览器控制台上,webpack 开发服务器抛出如下错误:
http://localhost:8090/hot/8f052261dd06c76e85cd.hot-update.json 404
[HMR] Cannot find update. Need to do a full reload!
[HMR] (Probably because of restarting the webpack-dev-server)
当我重新加载它的作品。注意手动上面的url:
http://localhost:8090/hot/8f052261dd06c76e85cd.hot-update.json
是可访问的。不知道我在哪里犯了错误。还有一种方法可以不将 hot son/js 文件保存在磁盘上,而只发送到应用 HMR 的 web pack-dev-server 吗?
webpack 和 webpack-dev-server 版本大于1.7.0