gpt4 book ai didi

node.js - 使用 Express.JS 运行 FIgwheel

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:15 24 4
gpt4 key购买 nike

正在运行lein figwheel根据我的理解,在端口 3449 上启动一个简单的静态托管服务器(通过环)。这适用于我的系统。

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

问题:但是,如果Figwheel对express.js端口3000一无所知,这怎么可能呢?服务器?而且,无论如何,这是将 Figwheel 与我自己的 Express 服务器一起使用的最佳方式吗(即运行两个实例,一个默认端口为 3449,我自己的端口为 3000)?

最佳答案

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

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

运行 2 个服务器具有优势的一种情况是,您所依赖的服务器端功能与使用 Figwheel 作为主机不太相符。这可能是由于部署(也许您不想使用环处理程序作为主服务器)或技术限制(我喜欢将 httpkit 用于 websockets,而且据我所知,没有一种好的方法可以从环处理程序)。但是,正如您所指出的,即使您不使用Figwheel 来提供文件或服务,您仍然可以使用它来快速开发重新加载。

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

关于node.js - 使用 Express.JS 运行 FIgwheel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35689106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com