2016-06-06 23 views
5

Sto giocando con Figwheel e sto scrivendo una semplice app a pagina singola che non richiede alcuna intelligenza lato server.Come si distribuisce un'applicazione a pagina singola. scritto in ClojureScript/Figwheel su un server statico?

In linea di principio, questa app. potrebbe essere posizionato su qualsiasi server Web statico.

Ma come distribuirlo? Sembra che main.js, che è nel mio ambiente di sviluppo di Figwheel, stia configurando la connessione della figwheel.

Quali file js e html devo effettivamente installare sul mio server statico? Figwheel li ha creati, o devo creare un nuovo main.js e index.html? E dove posso trovare esempi?

La documentazione è ottima per iniziare a utilizzare Figwheel, ma sorprendentemente reticente su cosa fare dopo aver terminato lo sviluppo.

risposta

5

Fase 1: Fare la build di produzione: lein do clean, cljsbuild once min

Fase 2: Mettere il tutto in resources/public in un luogo accessibile al pubblico.

Ecco lo script che uso per fare questo in un progetto di esempio: https://github.com/timothypratley/whip/blob/master/deploy.sh

Le risorse HTML non cambiano tra sviluppo e la distribuzione locale. L'unica cosa che è diversa sono gli artefatti compilati. È possibile implementare in effetti anche gli artefatti compilati per lo sviluppo. L'unica ragione per cui si consiglia di fare una "produzione build" è che quando si sviluppano localmente i file JS intermedi non vengono uniti insieme, perché è più veloce caricare solo il codice modificato nel browser. Per la distribuzione, avere un singolo artefatto compilato è migliore. Quel singolo JS compilato può avere ottimizzazioni avanzate, o solo semplici ottimizzazioni a seconda di come si configurano le build nel project.clj. Non devi davvero preoccuparti di nulla di tutto ciò, sto solo spiegando perché hai chiesto specificamente quali cambiamenti.

Potrebbe sembrare strano che la pagina HTML non cambi affatto, quindi spieghiamo un po 'di più. La pagina HTML include un JS compilato, quando esegui figwheel, se apri quel JS lo vedrai a turno carica solo altri file JS. Ma se si esce da figwheel e si fa una build "di produzione" pulita, si vedrà tutto il codice inserito nell'unico file JS. Abbastanza difficile eh?

Quel progetto di frusta dovrebbe fornire l'esempio che si sta cercando, per favore fatemi sapere se qualcosa di questo non è chiaro.

Utilizza le pagine github e l'obiettivo di distribuzione, ma di nuovo è necessario solo tutto nelle risorse/directory pubblica ospitate da qualche parte. Quindi puoi usare uno script molto simile con qualsiasi obiettivo di distribuzione.

+0

Grazie. In realtà non ho installato cljsbuild che mi ha confuso per un po ', ma questa risposta mi ha dato i contatti necessari per capire tutto. Saluti. – interstar

+0

Sembra che ci sia un errore di battitura in quello script. La riga finale deve essere preceduta da "cd ../ .." (o essere rimpiazzata da "rm -fr .git" - anche se ciò sembra spaventoso, qualcosa dovrebbe andare in errore in modo anomalo nella sceneggiatura, o anche un errore di modifica nel linee precedenti). –

+0

Ciao David! :) Grazie per aver segnalato l'errore. L'ho risolto :) –

Problemi correlati