17

我正在本地 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 主页的更多信息

4

1 回答 1

4

当您重新加载网页时,Firebase CLI 工具会提供本地磁盘中的最新文件。

当您修改磁盘上的本地文件时,Firebase CLI 工具不会浏览器中自动重新加载该文件。Firebase CLI 对其所服务的内容知之甚少,目前绝对无法实现此功能。

如果您希望添加此功能,我建议您将其作为功能请求添加到firebase-toolsrepo中。

于 2017-06-27T14:09:01.110 回答