首页 > 解决方案 > webpack 开发服务器代理出现错误:HPE_INVALID_CHUNK_SIZE

问题描述

我在我的项目中使用 webpack-dev-server。项目使用 Spring boot + Tiles + Vue + webpack。

环境:

OS: Mac OS
Node Version: 9.4.0
NPM Version: 5.6.0
Webpack Version: 4.25.1
webpack-dev-server Version: 3.1.10

在本地环境中,FE 端口使用 8080,webpack-dev-server 端口使用 9090。 webpack 打包的文件在 /front/static-dev/build/ 中创建。所以,我使用如下代理选项。

devServer: {
    publicPath: 'http://localhost:9090/front/static-dev/build/',
    port: 9090,
    proxy: {
        '/**': {
            target: 'http://localhost:8080',
            secure: false,
            changeOrigin: true
        }
    },
    open: true
}

启动 webpack-dev-server 后,像(JSP、捆绑的 js 文件、CSS 文件或图像等)这样的静态资源会正常加载。但是,每当我请求一些 api 时,webpack-dev-server 都会发生同样的错误。错误日志如下所示。

[HPM] Error occurred while trying to proxy 
request /api/v1/users/name from localhost:9090 to 
http://localhost:8080 (HPE_INVALID_CHUNK_SIZE) 
(https://nodejs.org/api/errors.html#errors_common_system_errors)

在请求一些 API 后,我检查了 Eclipse 的日志,并且 Api 请求正常进行。在 Chrome Consloe 日志中,如下所示。

http://localhost:9090/api/v1/users/name net::ERR_CONTENT_DECODING_FAILED 502 (Bad Gateway)

我认为问题在于响应部分。在 google 中使用 Webpack 搜索 HPE_INVALID_CHUNK_SIZE,我找不到任何信息。

我怎么解决这个问题。

谢谢。

标签: spring-bootwebpackproxywebpack-dev-server

解决方案


我使用连接选项解决了这个问题。

        proxy: {
        '/**': {
            target: 'http://localhost:8080/',
            secure: false,
            changeOrigin: true,
            headers: {
                Connection: 'keep-alive'
            }
        }

推荐阅读