簡體   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