Si Yo til Yeoman

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!


Yeoman

 _ .--------------------------. _ | 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.

Før vi går videre, må vi installere den!

Den raskeste måten å begynne å bruke Yeoman er ved å kjøre følgende skript.

 curl -L get.yeoman.io | sh
Merk: 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!

Bruk 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.

  • HTML5 Boilerplate for hovedbasen
  • Kompass Twitter Bootstrap for SASS-filene ettersom CSS-filene er skrevet i SASS
  • Twitter Bootstrap for valgfri liste over JavaScript-plugins (valgfritt)
  • KrevJS for AMD-modul og skriptlastingstøtte (valgfritt)
  • RequireHM for eksperimentell EcmaScript 6-modulsyntaksstøtte på toppen av RequireJS (valgfritt)

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:

  • JSHint
  • Kompilere CoffeeScript og SASS
  • Building RequireJS applikasjoner, ved hjelp av r.js
  • Sammenkobling, reduksjon og komprimering av PNG og JPEG
  • Kjører tester med PhantomJS
  • Bygg en applikasjonsbuffer manifest
  • Og noen andre.

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.

Lær mer om bruk av Jasmine i prosjektene dine her på Nettuts+.

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.


Sett alt sammen

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.


Konklusjon

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!