让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
)?是的,我有插件,抱歉,现在我已经编辑了这个问题