2015-05-23 11 views
7

Mi piacerebbe usare figwheel per ricaricare la frontend di un progetto tutto-clojure con cui sto giocando.Come utilizzare figwheel con un gestore di ring che è un componente?

Il backend serve un'API REST ed è organizzato come un gruppo di components da cui creo un sistema nella mia funzione main (io uso duct per creare il componente handler). Voglio passare lo stato ai miei gestori utilizzando le chiusure, ma l'unico modo per configurare figwheel per utilizzare il gestore sembra impostare la chiave ring-handler in project.clj e ciò richiede che io passi un gestore definito in un namespace al tempo di avvio .

Quindi, c'è un modo per configurare figwheel quando eseguo l'avvio del componente? Sono ancora molto nuovo alla Closure quindi è probabile che mi manchi qualcosa in bella vista.

Passing state as parameter to a ring handler? è una domanda simile, ma la risposta in questo caso implica il binding del gestore a var al livello più alto di uno spazio dei nomi, che sto cercando di evitare.

risposta

2

Figwheel non ha bisogno di essere un gestore. È possibile racchiudere un componente che esegue l'autocostruzione mentre il server è attivo e in esecuzione suddividendo il codice this in un componente, una dipendenza dal componente del server in modo che venga avviato per primo. Si noti che questo non è ufficialmente supportato. L'utilizzo di lein figwheel dalla shell per avviare una JVM separata è l'utilizzo convenzionale.

Se si utilizza la componente Stuarts, si consiglia di avvolgere il gestore dell'anello all'interno di un componente server anziché tramite project.clj. Utilizzare this project or adapt the code snippet per un componente jetty.

Si noti che figwheel è devtooling, quindi nella produzione è molto probabile che si desideri pubblicare un file js compilato con e. g. lein-cljsbuild.

Problemi correlati