2016-06-06 10 views
5

Gram z Figwheelem i piszę prostą jednostronicową aplikację, która nie wymaga żadnej inteligencji po stronie serwera.Jak wdrożyć aplikację z jedną stroną. napisane w ClojureScript/Figwheel na serwer statyczny?

Zasadniczo ta aplikacja. może zostać umieszczony na dowolnym statycznym serwerze WWW.

Ale w jaki sposób mogę je wdrożyć? Wygląda na to, że main.js, który znajduje się w moim środowisku rozwojowym Figwheel, konfiguruje połączenie rysownika.

Jakie pliki js i html muszę umieścić na swoim statycznym serwerze? Czy Figwheel je stworzył, czy też muszę utworzyć nowe main.js i index.html? Gdzie mogę znaleźć przykłady?

Dokumentacja jest świetna, aby rozpocząć korzystanie z Figwheel, ale zaskakująco powściągliwy co zrobić po zakończeniu programowania.

Odpowiedz

5

Krok 1: Sprawdź kompilacji produkcji: lein do clean, cljsbuild once min

Step 2: umieścić wszystko w resources/public w miejscu publicznie dostępnym.

Oto skrypt używam w tym celu w projekcie przykładowym: https://github.com/timothypratley/whip/blob/master/deploy.sh

Zasoby HTML nie zmieni między rozwojem lokalnym i wdrażania. Jedyną rzeczą, która jest inna, są skompilowane artefakty. Możesz również wdrożyć w rzeczywistości skompilowane artefakty. Jedynym powodem, dla którego zaleca się wykonanie "kompilacji produkcyjnej", jest to, że podczas lokalnego tworzenia pośrednie pliki JS nie są łączone ze sobą, ponieważ szybciej jest załadować tylko zmieniony kod do przeglądarki. W przypadku wdrożenia, posiadanie pojedynczego skompilowanego artefaktu jest lepsze. Ten skompilowany JS może mieć zaawansowane optymalizacje lub tylko proste optymalizacje w zależności od tego, jak konfigurujesz kompilacje w swoim projekcie.clj. Nie musisz się tym martwić, po prostu tłumaczę, ponieważ zapytałeś dokładnie, jakie zmiany.

Może wydawać się dziwne, że strona HTML w ogóle się nie zmienia, więc wyjaśnijmy to nieco więcej. Strona HTML zawiera skompilowany JS, gdy uruchomisz figwheel, jeśli otworzysz ten JS zobaczysz go po kolei ładuje inne pliki JS. Ale jeśli wyjdziesz z figwheel i zrobisz czystą "produkcję", zobaczysz, że cały kod trafia do jednego pliku JS. Dość trudny huh?

Ten projekt bicza powinien dostarczyć przykład, którego szukasz, proszę dać mi znać, jeśli coś z tego jest niejasne.

Używa stron github i docelowego wdrożenia, ale znowu potrzebujesz wszystkiego w zasobach/katalogu publicznym gdzieś. Możesz więc użyć bardzo podobnego skryptu z dowolnym celem wdrożenia.

+0

Dzięki. Naprawdę nie zainstalowałem cljsbuild, który przez jakiś czas wprawiał mnie w zakłopotanie, ale ta odpowiedź dała mi wskazówki, które potrzebowałem, aby to wszystko zrozumieć. Twoje zdrowie. – interstar

+0

Wygląda na to, że w tym skrypcie występuje drobna literówka. Ostatnia linia poprzedzona jest "cd ../ .." (lub zastąpiona przez "rm -fr .git" - choć to przeraża, gdyby coś poszło dziwnie źle na początku skryptu, lub nawet błąd edycji w wcześniejsze linie). –

+0

Witaj David! :) Dziękuję za wskazanie błędu. Naprawiłem to :) –

Powiązane problemy