让webpack和webpack开发服务器为HMR工作
我的让webpack和webpack开发服务器为HMR工作,webpack,react-hot-loader,Webpack,React Hot Loader,我的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/a
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()]
};
new WebpackDevServer(webpack(config), {
publicPath: config.output.publicPath,
hot: true,
}).listen(8090, 'localhost', function (err, result) {
if (err) {
return console.log(err);
}
});
当我运行webpack时——观看。当我进行更改时,它会在我的hot
目录下生成hot update.js
/json
我有我的网页包dev server,它看起来像这样:
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()]
};
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 development server抛出了如下错误:
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
可以访问。不知道我在哪里犯了错误。还有没有一种方法可以不将hotson/js文件保存在磁盘上,而只发送到应用HMR的webpackdev服务器
Webpack和Webpack dev服务器版本大于1.7.0
,只运行WebpackDevServer
就足够了。是否添加了新的网页包。HotModuleReplacementPlugin()
插件?仅运行WebpackDevServer
不会引发热替换文件的错误(因为我已配置了publicpath
)?是的,我确实有这个插件,抱歉,现在我已经编辑了这个问题,只要运行WebpackDevServer
就足够了。是否添加了新的网页包。HotModuleReplacementPlugin()
插件?仅运行WebpackDevServer
不会引发热替换文件的错误(因为我已配置了publicpath
)?是的,我有插件,抱歉,现在我已经编辑了这个问题