Kuinka luoda ClojureScript-sovellus

Tämän artikkelin inspiraationa on Elm App -työkalu Elm-kielelle, jonka puolestaan ​​on luonut React App -työkalu React.js: lle ja JavaScriptille

Näiden työkalujen tavoitteena on tarjota rakennusasetukset ilman määrityksiä, joten kehittäjien ja aloittelijoiden aloittaminen on helpompaa. Tässä artikkelissa haluaisin tehdä lyhyen katsauksen siitä, mitä ClojureScript voi tarjota niille, jotka alkavat vasta kielellä.

Leiningen

Leiningen on helpoin tapa käyttää Clojurea. Kun keskitytään projektin automatisointiin ja deklaratiivisiin määrityksiin, se poistuu tieltäsi ja antaa sinun keskittyä koodiin.

Se siitä! Tarvitset vain yhden työkalun. Leiningen hallinnoi riippuvuuksiasi, ylläpitää kehityspalvelinta ja tekee tuotantoa rakentamaan. Se on oikeastaan ​​kaikkein tärkein työkalu Clojure (Script) -projekteihin. Sen avulla voidaan käyttää CSS-esikäsittelyohjelmia, nukkaa sinut koodille, suorittaa e2e-testejä tai ottaa käyttöön tuotannossa ja tehdä paljon enemmän tehtäviä laajennuksilla. Voit ajatella Leiningeniä Gruntin kaltaisena tehtävien juoksijana.

Leiningen eliminoi kokoonpanolaatikon malleilla. Malli on satunnaisen henkilön Internetissä kirjoittama paketti, joka auttaa muita kehittäjiä aloittamaan erityyppiset projektit.

Päästä alkuun

  1. Asenna Leiningen (katso muut asennusvaihtoehdot):
hauduta asennusleina

2. Bootstrap ClojureScript-projekti Figwheel-mallilla:

lein uusi pyörän projekti-nimi
komentorivilähtö sen jälkeen, kun `lein newwwheel my-app` on suoritettu

Tämä tuottaa seuraavan rakenteen projektin:

├── LUE.Md
├── dev
│ └── käyttäjä.clj
├── projekti.clj
├── resursseja
│ └── julkinen
│ ├── css
└── │ └── style.css
│ └── hakemisto.html
R src
    └── my_app
        └── ydin.cljs

Jos haluat aloittaa verkkosovelluksen rakentamisen, voit alustaa projektin yhdellä kolmesta React.js-käärekirjastokirjastosta: Om, Rum tai Reagent.

lein uuden haarapyöräprojektin nimi - --rum

Tuotannon rakennus

lein cljsbuild kerran min

lein-cljsbuild on laajennus ClojureScript-projektien rakentamiseen.

Tämä suorittaa tehtävän, joka määritetään konfiguraatiossa min vain kerran, ja tuottaa optimoidun ja pienennetyn tuotantorakenteen. Koodi on optimoitu Closure Compilerilla, joka on edistyksellisin JavaScriptin optimointityökalu.

komentorivin lähtö `lein cljsbuild kerran min` suorittamisen jälkeen

Kehityspalvelin

Lein-pyöräkehä

lein-figwheel on plugin tulostustason JavaScriptin ja CSS-koodin kuumaan uudelleenlataukseen.

Katsotaanpa mitä täällä tapahtuu:

  1. Kokoonpanon validointi. Jos jotain on väärässä konfiguraatiossa, Figwheel pyytää sinua korjaamaan tämän osoittamalla tarkan virheen konfiguraatiotiedostossa.
  2. Käynnistyspalvelin. Kehityspalvelin alkaa locahost: 3449, portti voidaan määrittää config.
  3. Kokoa ja katso. Käännä ClojureScript ja tarkkailee muutoksia projektin lähdetiedostoissa. Pyöräkehä kokoaa muutokset ja työntää JavaScript-koodin selaimeen. Jos koodissasi on virhe, Figwheel ei päivitä sitä, vaan näyttää sen sijaan hälytysruudun selaimessa virheilmoituksen ja virheen tarkan sijainnin koodilla.
  4. Käynnistetään CSS-tarkkailija. Yksinkertainen CSS-tiedostojen tarkkailija, joka vie muutokset selaimeen.
  5. ClojureScript REPL. Viimeinkin Figwheel käynnistää interaktiivisen REPL: n, jossa voit suorittaa koodin, joka suoritetaan selaimessa ja olla vuorovaikutuksessa projektin koodin kanssa.

Olen nauhoittanut tämän nopean videon näyttääksesi kuinka REPL ja Figwheel toimivat.

riippuvuudet

Clojure (Script) -paketit varastoidaan arkistoon, joka on samanlainen kuin NPM, sitä kutsutaan Clojarsiksi. Löydät paketin sieltä ja lisää sen seuraaviin kohteisiin: riippuvuudet projekti.clj-projektista. Leiningen asentaa uudet riippuvuudet automaattisesti, kun käynnistät projektin uudelleen.

: riippuvuudet [[org.clojure / core.async "0.2.391"]]

johtopäätös

Toivon, että tämä artikkeli saa sinut vähemmän pelkäämään ClojureScriptiä ja auttamaan aloittamaan sen muutamassa sekunnissa. Alla on luettelo resursseista, jotka kannattaa lukea saadaksesi lisätietoja kielestä ja työkaluista.

  • ClojureScript-Wiki
  • Leiningen
  • Figwheel
  • ClojureScript Koans
  • ClojureScriptin seuraavat viisi vuotta
  • ClojureScript skeptikoille
  • ClojureScriptin kehittäminen Figwheelin avulla