繁体   English   中英

使用Express.JS运行FIgwheel

[英]Running FIgwheel with Express.JS

lein figwheel我了解,运行lein figwheellein figwheel启动一个简单的静态托管服务器(通过环网)。这在我的系统上有效。

问题是我正在通过node.js在端口3000托管我自己的文件。 当我运行figwheel,然后启动我的express.js服务器时,更改前端文件会奇怪地影响两个端口(即,更新文件会导致两个页面立即重新呈现)。

问题:但是,如果figwheel对express.js端口3000服务器一无所知,那怎么可能? 而且,无论如何,这是否是在我自己的Express服务器上使用figwheel的最佳方法(即,有两个实例在运行,一个实例在3449上运行,而我自己的端口在3000上)?

该页面正在运行从ClojureScript构建的javascript。 该版本包括figwheel客户代码。 来自Figwheel客户端的代码正在打开到预定位置的Websocket连接。 网页的托管位置无关紧要,JavaScript都将尝试连接到预定义的websocket端点。 因此,如果您在3000上从服务器加载页面,则仍会建立websocket到使用lein figwheel创建的服务器进程。 重要的一点是,这里有figwheel客户代码和figwheel服务器。 Figwheel服务器正在监视文件系统,并在文件更改时告知任何Websocket连接。 figwheel客户端仅连接到已知的Websocket,并正在侦听有关重新加载工件的指令。 因此,您不必像已经发现的那样使用Figwheel来提供静态内容。

至于“这是最好的方法吗?” 好吧,这完全取决于您的目标。 当然,它可以很好地运行,所以如果两者都运行有优势,那就去吧! 另一方面,如果不需要快递服务器,为什么还要运行它呢?

运行2台服务器比较有优势的一种情况是,您依赖于服务器端功能,而该功能与使用Figwheel作为主机不太匹配。 这可能是由于部署(也许您不想使用环形处理程序作为主服务器),或者是技术限制(我喜欢将httpkit用于websocket,而afaik)没有一种从铃声处理程序)。 但是,正如您指出的那样,即使您不使用figwheel来进行文件的重新加载,也可以使用它进行快速的重新加载。

显然,Figwheel服务器需要监视正确的文件,因此,请确保figwheel配置为观察正确的目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM