1

我正在用 Go 开发一个 Web 服务,它将它的 UI 委托给一个vue.jswebpack.

My Go 服务负责托管 UI 和 UI 使用的 REST API。

在开发模式下,我希望从工具(例如基于 inotify 的自动重新加载)中受益vue.jswebpack因此我在 Go 程序中添加了一个开关来执行此操作:

var handler http.Handler

if isDevelopment {
    // url below points to the webpack standalone
    // development server, at http://localhost:8080.
    proxy := httputil.NewSingleHostReverseProxy(url)
    proxy.FlushInterval = time.Millisecond * 100
    handler = proxy
} else {
    handler = http.FileServer(http.Dir("www"))
}

所以基本上,在开发模式下,我可以启动 webpack 的开发服务器(使用npm run dev),我的 Go 程序将所有 UI 请求委托给它。

除了几秒钟后,Chrome 抱怨说:

GET http://localhost:9999/__webpack_hmr net::ERR_INCOMPLETE_CHUNKED_ENCODING

自动刷新会停止工作一段时间并最终恢复,但它比我直接连接到 webpack 的独立服务器要慢。

我认为可以追踪 Go 中的问题,httputil.ReverseProxy并且我相信它没有任何特定的代码来正确处理事件源。

这是一个已知问题吗?我能做些什么来让我的 Go 反向代理事件源感知/兼容吗?

4

0 回答 0