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.
fonte
2016-06-07 17:42:40
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
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). –
Ciao David! :) Grazie per aver segnalato l'errore. L'ho risolto :) –