1

我有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/ 。jsonhot

我有我的 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

4

0 回答 0