11 Dependency Management Tools for webutviklere
Avhengighet er en hjørnestein i moderne webutvikling. Dette er de nødvendige verktøyene, plugins, biblioteker og rammer nødvendig for å bygge webapplikasjoner på høyt nivå.
Det rene antallet avhengigheter har skutt i de siste årene. Over tid har utviklere vedtatt avhengighetsstyringsverktøy som lindre stresset for å holde avhengigheter organisert og oppdatert. Disse verktøyene gir en optimal arbeidsflyt for utviklere og prosjektledere.
Jeg har katalogisert de beste avhengighetsverktøyene her, inkludert både veletablerte og nyutviklede plattformer. Profesjonell webutvikling krever kontinuerlig læring, og jeg vil hevde at avhengighetsadministrasjon er en ferdighetstjeneste som er verdt å lære.
1. NPM
Jeg kunne ikke skrive denne håndboken uten å gi kreditt til Node Package Manager. Bygget på Node.js, gir dette systemet et enormt lager av 100.000 + pakker og moduler.
Hvert prosjekt kan bruke et setup.json-filoppsett gjennom NPM og til og med administrert med Gulp (på Node). Avhengigheter kan oppdateres og optimaliseres rett fra terminalen. Og du kan bygge nye prosjekter med avhengighetsfiler og versjonsnumre som automatisk trekkes fra package.json-filen.
NPM er verdifull for mer enn bare avhengighetsadministrasjon, og det er praktisk talt et must-know verktøy for moderne webutvikling. Hvis du er forvirret, sjekk ut denne Reddit-tråden for en nybegynners forklaring.
2. Bower
Pakkehåndteringssystemet Bower kjører på NPM som virker litt overflødig, men det er en forskjell mellom de to, spesielt at NPM tilbyr flere funksjoner mens Bower har som mål å få en reduksjon i filstørrelse og belastningstider for frontend avhengigheter.
Sjekk ut dette Stack-spørsmålet for å lære mer om de subtile forskjellene.
Noen devs hevder at Bower er i utgangspunktet foreldet siden den kjører på NPM, en tjeneste som kan gjøre nesten alt Bower kan gjøre. Generelt sett er dette ikke feil.
Men devs burde innse Bower can optimaliser arbeidsflyten spesifikt med frontendavhengigheter. Jeg anbefaler Ben McCormicks artikkel Er Bower Useful å lære mer om verdien som tilbys fra begge pakkeledelsesverktøyene.
3. RubyGems
RubyGems er en pakkebehandling for Ruby med høy popularitet blant webutviklere. Prosjektet er åpen kildekode og inkluderer alle gratis ruby-perler.
For å gi en kort oversikt for nybegynnere, a “perle” er bare noen kode som kjører på et Ruby miljø. Dette kan føre til programmer som Bundler som administrerer perle versjoner og holde alt oppdatert.
Rails-utviklere vil elske denne funksjonen, men hva med frontend-pakker? Siden Ruby er åpen kildekode, kan utviklere bygge prosjekter som Bower for Rails. Dette bringer frontendpakkehåndtering til Ruby-plattformen med en liten læringskurve.
4. Krever JS
Det er noe spesielt med RequireJS fordi det er primært et JS-verktøy. Den kan brukes til lasting av JS-moduler raskt, inkludert nodemoduler.
KravJS kan Oppdag automatisk nødvendige avhengigheter basert på hva du bruker, kan dette være knyttet til klassisk programvareprogrammering i C / C ++ der biblioteker er inkludert i flere bibliotek.
Du finner en interessant GitHub diskusjon om dette emnet og verdien den tilbyr moderne webutviklere. Gitt andre JS-styringsverktøy som webpack har dukket opp, krever RequireJS fortsatt i produksjonsmiljøer. Og hvis det virker for deg som er alt som betyr noe.
5. Jam
Browserbasert pakkebehandling kommer i en ny form med JamJS. Dette er en JavaScript-pakkeadministrator med automatisk administrasjon som ligner på RequireJS.
Alle dine avhengigheter er trukket inn i en enkelt JS-fil som lar deg legge til og fjerne elementer raskt. I tillegg kan disse oppdateres i nettleseren, uansett andre verktøy du bruker (for eksempel KravJS).
Biblioteker oppdateres basert på de nyeste versjonene gjennom terminalen. Hvert prosjekt kan være opprettet automatisk med optimaliserte komponenter basert på dine behov. Jam er gratis på GitHub og verdt en titt hvis du har tid.
6. Browserify
De fleste utviklere kjenner til Browserify selv om det ikke er en del av deres typiske arbeidsflyt. Dette er et annet verktøy for avhengighetsadministrasjon som optimaliserer nødvendige moduler og biblioteker ved å kombinere dem sammen.
Disse buntene er støttet i nettleseren noe som betyr at du kan inkludere og slå sammen moduler med vanlig JavaScript. Alt du trenger er NPM for å komme i gang og deretter Browserify for å flytte.
Ta en titt på denne intro-opplæringen for å se hvordan Node kan administreres rett i nettleseren. Det finnes også en lengre Browserify-håndbok som er hostet på GitHub gratis. Tanken er å bringe alle disse Node-verktøyene inn i nettleseren og spare tid ved å automatisere prosessen med Browserify.
7. Mantri
I sine tidlige vekststadier er MantriJS et avhengighetssystem for mid-to-high-level webapplikasjoner. Avhengigheter styres gjennom navneområder og organisert funksjonelt for å unngå kollisjoner og redusere rot.
Mantri er for tiden på v0.2.2 ved skrivingstidspunktet. Det er helt åpen kilde og bygget for mer komplekse webapplikasjoner som krever store bundler av avhengigheter. Mantri har som mål å følge modulære programmeringspraksis og håper å oppmuntre utviklere til samme vei.
8. Volo
Prosjektledelsesverktøyet volo er en åpen kildekode-NPM-repo som kan skape prosjekter, legge til biblioteker og automatisere arbeidsflyter.
Volo kjører inne Node og stoler på JavaScript for prosjektledelse. En kort introguide finner du på GitHub, som forklarer installasjonsprosessen og vanlig bruk. For eksempel hvis du kjører kommandoen volo opprette
Du kan legge til et hvilket som helst bibliotek som HTML5 Boilerplate.
Men bortsett fra å skape nye prosjekter kan du også legge til / oppdater biblioteker for eldre prosjekter. Volo knytter seg til alt du trenger for frontendutvikling. Ta en titt på Volos designmål for å se hvordan den fungerer i et virkelige prosjekt.
9. Ender
Ender er “ingen biblioteksbibliotek” og er en av de letteste pakkelederne du finner online. Det tillater devs å søk gjennom JS-pakker og installer / kompilere dem rett fra kommandolinjen. Ender er tenkt som “NPMs søster” av dev team.
Naturligvis er hele Ender-rammen gratis tilgjengelig på GitHub. Det er bare et verktøy du installerer for å hjelpe administrere forbruk av frontend JavaScript-rammer for lokale prosjekter. Alt er ment å løpe med letthet til det fulle potensialet for en frontend-utviklerens arbeidsflyt.
Hoved Ender-nettstedet har kvalitetsdokumentasjon, så det er verdt et blikk hvis du er interessert.
10. pip
Den anbefalte metoden for å installere Python-avhengighet er gjennom pip. Dette verktøyet ble opprettet av Python Packaging Authority, og det er helt åpen kildekode akkurat som Python selv.
De fleste Python-utviklere anbefaler pip for avhengigheter, inkludert Django-teamet. Enten du bare begynner med Python eller allerede bruker den konsekvent med backend-utvikling, er dette en pakkebehandling du vil gjerne ha i verktøykassen din..
11. Komponist
Komponist er en pakkebehandling som ligner på NPM, men det er bare fokusert på PHP-biblioteker. Du finner en liste over avhengigheter på Packagist som inneholder store PHP-rammer som Laravel.
Hvis du er en PHP-utvikler av noe slag anbefaler jeg seriøst å se på komponist. Det er Lett å komme i gang, men vanskelig å passe inn i arbeidsflyten din. Men med praksis vil det bli en stift for PHP dev-prosjekter.
Dette er et allsidig verktøy med potensial til å vokse enda større i tid. Plus NPM kan blande seg med Komponist for å skape et frontend + backend-avhengighetsstyringssystem for alle dine PHP / JS-prosjekter.
Innpakning
Det er klart at mange av disse avhengighetsledere har lignende egenskaper med lignende egenskaper. Noen er bygget til løse alternative problemer og kan til og med løpe sammen med hverandre (dvs. komposant og NPM).
Emnet avhengighetsadministrasjon kan være tøft for nye utviklere. Jeg anbefaler å plukke et av disse verktøyene og undersøke dybde for å lære så mye som mulig. Prøv å bygge små webapps og lære hvorfor avhengighetsadministrasjon er nyttig.
Når du har lært hvordan du bruker disse verktøyene i arbeidsflyten din, vil du aldri vurdere å gå tilbake.