我正在用 Go 开发一个 Web 服务,它将它的 UI 委托给一个vue.js
用webpack
.
My Go 服务负责托管 UI 和 UI 使用的 REST API。
在开发模式下,我希望从工具(例如基于 inotify 的自动重新加载)中受益vue.js
,webpack
因此我在 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 反向代理事件源感知/兼容吗?