我正在本地 firebase 服务器(以“firebase serve”开头)上运行 webapp。
我想要的是找到一种方法来告诉我的客户(浏览器脚本)我的项目文件已经更改,以便启动浏览器刷新。
在以前的项目(运行 nodejs 服务器)中,我的解决方案是在后端和前端之间建立websocket 连接。所以每次重新启动服务器时(...由于文件更改,我正在监视使用 nodemon 之类的监视程序...),我的服务器端代码建立了与客户端的新连接,该客户端侦听该事件并刷新浏览器就可以了。
我的firebase 服务器的问题是,我没有运行自己的后端代码,也没有找到任何有关如何告诉客户我的项目文件已更改的信息。事实上,我的firebase 服务器根本没有重新启动,因为在这个无后端环境中还不需要重新启动。但我想至少这可以通过 nodemon 或其他东西运行我的 firebase 服务器来完成。
附加信息:我试图找到一种使用 webpack-dev-server 的方法,它集成了自动刷新,但找不到两个服务器之间的链接,或者找不到将它们集成在不同端口上运行并解决不同任务的方法。
我的问题可能是:firebase 服务器中是否实施了任何解决方案?有没有办法在文件更改时触发客户端事件?或者最终运行我自己的firebase后端中间件来创建与客户端的websocket连接?
欢迎任何建议。
编辑:
我找到了一种使用 browsersync 的方法。由于 browsersync 可以充当其他服务器的代理(在我的例子中:firebase 服务器),因此设置起来非常容易。
安装后只需转到您的项目目录并键入例如:
浏览器同步开始 --proxy "localhost:5000" --files "dist/*"
其中“localhost:5000”是您当前服务器地址的主机和端口,“dist”是应该监视更改的目录。
默认情况下,browsersync 将在“localhost:3000”为您的应用程序提供服务。
有关browsersync 主页的更多信息