Ifølge yeoman.io, "Yeoman er et robust og oppfylt sett med verktøy, biblioteker og en arbeidsflyt som kan hjelpe utviklere raskt å bygge vakre, overbevisende webapper." La oss grave inn og se nøyaktig hva dette betyr!
_ .--------------------------. _ | o | _ | Velkommen til Yeoman, | | _ | | damer og herrer! | / \ Y / \ o _________________________ | || : | // o / --- \ _ \ / _
Mye arbeid går i å bygge webapps disse dager. Det finnes utallige biblioteker der ute for bruk, mønstre, stiler, grids, boilerplates, bootstraps ... listen fortsetter! Yeoman er et svar på noen av disse problemene. I stedet for å måtte kaste bort en mengde tid på å få et program oppe, gjør Yeoman arbeidet for deg - bare krever noen få kommandoer.
Den raskeste måten å begynne å bruke Yeoman er ved å kjøre følgende skript.
curl -L get.yeoman.io | shMerk: Yeoman støttes av OSX, Linux og Windows. Denne prosessen klokker på rundt 10 minutter. I en fremtidig oppdatering vil denne installasjonsprosessen imidlertid bli endret.
Så det var lett. Hva skjedde nå? Mange ting! De install.sh
fil av ,get.yeoman.io
, har en overskrift som beskriver nøyaktig hva som skjedde.
# * Oppdag Mac eller Linux, velg hvilken pakkebehandling du skal bruke # * På Mac, installer homebrew hvis den ikke er tilstede # * Deretter installerer du disse: git optipng jpeg-turbo phantomjs # * Pass på at Ruby> = 1.8.7 er rundt, installer hvis ikke (for kompass) # * Installer den nyeste NodeJS-pakken # * Installer kompass # * Last ned Yeoman zip til en midlertidig mappe # * Installer den som en global nodemodul
Og der har du det!
Yeoman er installert som en global Node-modul, så åpne din TOC (Terminal of Choice), og kjør yeoman
.
Første gang dette går, vil det spørre om du vil tillate dem å holde statistikk over Yeoman-bruken. De har faktisk et Google Analytics-kontooppsett for å spore all slags interessant brukstatistikk.
Bare kjører yeoman
fra nå av vil du skrive ut en liste over kommandoene som er tilgjengelige for å utføre.
yeoman init
Dette er hvor stillasemagien skjer. Kjør følgende kommando for en grunnleggende stillas-app.
yeoman init
Denne kommandoen vil stille fem spørsmål:
Ut av boksen, kjører i det
vil inkludere HTML5 Boilerplate, og jQuery og Modernizr. Her er en utvidet liste.
Det vil også kompilere CoffeeScript og Compass-filer rett ut av boksen!
generatorer er den magiske bak alle stillasene. De i det
kommandoen, i seg selv, er basert på en generator. Det er et eget lager for dem. Det er mange tilgjengelige allerede, inkludert Backbone, Ember, og vinkel~~POS=TRUNC for å nevne noen få av dem. For å se en liste over alle dem, bare kjør ...
yeoman init --hjelp
Generatorer er en stor del av Yeoman, og er ment å bli endret og lagt til.
Tips: For å få hjelp til å lage din egen generator, se generasjonsområdet i dokumentasjonen.Hvis du vil lage din egen Backbone.js-applikasjon, kan du bare kjøre:
mkdir backboneapp && cd backboneapp yeoman init backbone
Dette vil bygge et prosjekt med flere boilerplate modeller, visninger, samlinger, forhåndslastet med Lodash, Mocha, jQuery og HTML5 boilerplate.
Du kan gjøre det samme med vinkel og ember som nevnt tidligere.
Det er forskjellige sub generatorer også, som tillater deg å gjøre ting, som:
yeoman init backbone: se awesomeView yeoman init backbone: modell awesomeModel yeoman init backbone: samling awesomeCollection yeoman init backbone: router awesomeRouter
Så BAM, har du noe nytt codez å jobbe med, i stedet for å kaste bort en masse tid med omskrivning av boilerplate-kode!
yeoman bygge
Under dekslene finner du Grunt, som et populært rammeverk, opprettet av Ben Alman (Cowboy), for å bygge JavaScript-applikasjoner. Det er avhengig av en grynte
fil med konfigurasjonsalternativer som konfigurerer oppgaver for å utføre forskjellige operasjoner, for eksempel linting, kombinering, minifisering, osv.
Yeoman er bygget på toppen av Grunt, men utvider den for å gi noen nye modifikasjoner og funksjoner. Disse inkluderer:
r.js
Konfigurasjonen vil bli plassert i en gruntfile.js
fil i den genererte appen. Når du er ferdig med å utvikle, kjør følgende for å bygge appen.
yeoman bygge
Din nybygde app vil bli plassert innenfor en dist /
mappe. En kul funksjon er hvordan Yeoman vil ta skriptreferanser, for eksempel:
Og etter å ha kjørt bygningen, konkatiser og rediger disse filene ned til en enkelt manus
henvisning. Det er tolv HTTP-forespørsler ned til en!
Hvert av trinnene for byggeprosessen finner du i gruntfile.js, som genereres når appen er opprettet. Det er også flere bygge mål alternativer.
yeoman server
Yeoman tilbyr også en innebygd hosting server for å teste appen din lokalt. LiveReload eller enkel fil å se om du ikke har LiveReload sikrer også at når du kjører serveren, vil eventuelle endringer i filer i appen automatisk laste opp nettleseren med de nye endringene. Som standard er porten den kjører på 3051
. Ved å kjøre følgende ...
# Kjør dette for ikke-bygget versjon yeoman server # Eller dette for den innebygde versjonen yeoman server: dist
Et nytt browswer-vindu vil dukke opp med at appen din kjører. Serveren vil også kompilere Coffee and Sass eiendeler, og plassere dem innenfor en temp
katalogen. Så du trenger ikke å bekymre deg for å kompilere! Det er flere andre servermål; sørg for å sjekke dem ut.
yeoman test
Mokka er et populært enhetstestingsramme og er bygd inn i Yeoman. Når et prosjekt er stillas, en testmappe med en index.html
filen er opprettet med Mokka og Chai for påstander. Bare kjør:
yeoman test
Yeoman vil da kjøre Mocha mot PhantomJS, som er en headless webkit-nettleser som går inn i Node.js. Deretter kan du gjerne legge til nye tester i index.html
fil. Enhetstesting kan i stor grad forbedre enhver applikasjon, og Yeoman gjør prosessen så enkelt som mulig. Så det er ingen unnskyldninger lenger! Du kan også bruke Jasmine, hvis du foretrekker det, ved å passere --test-ramme jasmin
til yeoman init
kommando.
yeoman installere
For å installere nye klientbibliotek i søknaden bruker Yeoman et bibliotek, kalt Bower som er utviklet av noen av folkene på Twitter.
Bower er en pakkeleder for nettet. Bower lar deg enkelt installere eiendeler som bilder, CSS og JavaScript, og håndterer avhengigheter for deg.
Yeoman tillater følgende kommandoer:
# Installer hvilken som helst pakke (er) plass begrenset yeoman installere jquery # Avinstaller ting yeoman avinstallere jquery # Oppdater ting yeoman oppdatering jquery # Installer understrek også siden ryggraden avhenger av det yeoman installere ryggraden # Liste ut alle de installerte tingene yeoman list # Gå finne ting spesifikt basert på et navn Yeoman Lookup Mocha # Go finne ting basert på et søkeord Yeoman Lookup understrek
Bower er et ypperlig tillegg til Yeoman, og løser arbeidsflytproblemet av å måtte stadig hente biblioteker, når du bygger apper. Det sikrer også at de er oppdatert. Her er et eksempel på hvordan du kan bruke Bower.
bower install jquery bower install git: //github.com/maccman/package-jquery.git bower install http://code.jquery.com/jquery-1.7.2.js bower install ./repos/jquery
Appene som er installert med bower, lagres i en component.json filen i roten av programmet.
La oss lage et enkelt ryggradsprogram fra start til slutt.
# Lag en ny app yeoman init backbone # Lag en ny modell og samling yeoman init backbone: modellfoto yeoman init backbone: samling bilder # Lag en ny visning for flickr offentlige bilder yeoman init backbone: se flickr yeoman init backbone: se photoItem # WAVES HAND AND ADDS LOTS OF CODE # https://github.com/jcreamer898/yeomanbbapp yeoman server # Bygg alle ting! yeoman build # Sjekk ut den nye bygge mannen ... yeoman server: dist
Wow, det er nesten for enkelt - og ikke glem at du kan lage Bash-aliaser for å ytterligere forkorte denne koden. Den vanskeligste delen var å lage prøveapplikasjonen! Men det er skjønnheten i det. Yeoman tar deg bort fra
boilerplate-koden, og lar deg fokusere utelukkende på de harde tingene!
Hvis du vil, ta en titt på appen for å se hvordan ting gikk. Jeg vil si ganske bra.
Yeoman kan raskt påskynde utviklingsprosessen for en ny applikasjon. I stedet for å kaste bort tidssamling av biblioteker og skrive boilerplate-kode, skriver du i stedet noen få kommandoer, og du er oppe! Enda bedre, det er åpen kildekode og skrevet av et par gutter du kanskje vet!
Nyt!