webpack热更新延迟问题
2017-06-24
前提一
如果后端服务是通过session来控制用户登录态的,在客户端就是用过cookie来保存sessionid,而在前后端分离的情况下,cookie就需要保存在根域才可以保证客户端可以读到cookie
前提二
如今使用webpack来构建前端项目,特别是react项目,必然是想要用webpack的热更新功能,那么就需要使用webpack-dev-server
,但是webpack-dev-server怎么去配置域名?因为前提一的SessionId是要存在根域中
前提三
为了解决 前提一 + 前提二 的问题,那么我决定使用nginx来给webpack-dev-server做反向代理
配置如下:
1 |
|
标题所诉的问题来了
这样配置后确实可以拿到sessionId了,但是感觉有点不对,webpack热更新似乎是失效了
但是仔细观察,其实并没有失效,只是延迟了
比如,第一次修改的代码,页面接收到了hot-update.js,但是页面并没有更新,此时,我再次修改代码,页面同样会接收到hot-update.js,而此时页面内容更新了,但更新是第一次修改内容
最终的原因是nginx默认开启的buffer机制缓存了服务器推送的片段信息,缓存达到一定的量才会返回响应内容。只要关闭proxy_buffering即可。
如下:
`
server {
listen 80;
server_name admin.xinlebao.com;
location / {
proxy_pass http://loc