11 Afhængighedsstyringsværktøjer til webudviklere
Afhængigheder er en hjørnesten i moderne webudvikling. Disse er de nødvendige værktøjer, plugins, biblioteker og rammer nødvendigt at opbygge webapplikationer på højt niveau.
Det store antal afhængigheder er blevet skubbet i de sidste par år. Over tid udviklere har vedtaget afhængighedsstyringsværktøjer som afhjælpe stresset for at holde afhængigheder organiseret og up-to-date. Disse værktøjer fører til en optimeret arbejdsgang for udviklere og projektledere.
Jeg har katalogiseret de bedste afhængighedsværktøjer her, herunder både veletablerede og nye platforme. Professionel webudvikling kræver løbende læring, og jeg vil hævde, at afhængighedsstyring er en færdigheder, der er værd at lære.
1. NPM
Jeg kunne ikke skrive denne vejledning uden at give kredit til Node Package Manager. Bygget på Node.js, styrer dette system et enormt lager af 100.000 + pakker og moduler.
Hvert projekt kan bruge en package.json fil opsætning via NPM og endda styret med Gulp (på Node). Afhængigheder kan opdateres og optimeres lige fra terminalen. Og du kan bygge nye projekter med afhængighedsfiler og versionsnumre, der automatisk trækkes fra filen package.json.
NPM er værdifuld til mere end bare afhængighedsstyring, og det er praktisk taget et must-know-værktøj til moderne webudvikling. Hvis du er forvirret, skal du tjekke denne Reddit-tråd til en nybegynders forklaring.
2. Bower
Pakkehåndteringssystemet Bower kører på NPM, der synes lidt overflødigt, men der er forskel på de to, især at NPM tilbyder flere funktioner, mens Bower sigter mod en reduktion i filstørrelse og belastningstider for frontend afhængigheder.
Tjek dette Stack spørgsmål for at lære mere om de subtile forskelle.
Nogle devs hævder, at Bower er grundlæggende forældet, da den kører på NPM, en tjeneste, der kan gøre næsten alt, hvad Bower kan gøre. Generelt er det ikke forkert.
Men devs bør indse Bower can optimere workflow specifikt med frontend afhængigheder. Jeg anbefaler Ben McCormicks artikel Er Bower Nyttig at lære mere om den værdi, der tilbydes fra begge pakkehåndteringsværktøjer.
3. RubyGems
RubyGems er en pakkechef for Ruby med stor popularitet blandt webudviklere. Projektet er open source og inklusive alle gratis ruby ædelstene.
For at give et kort overblik for begyndere, a “perle” er bare nogle kode, der kører på et Ruby miljø. Dette kan føre til programmer som Bundler, som administrerer perle versioner og holde alt opdateret.
Rails-udviklere vil elske denne funktion, men hvad med frontend-pakker? Da Ruby er open source, kan udviklere bygge projekter som Bower for Rails. Dette bringer frontend-pakkehåndtering til Ruby-platformen med en lille læringskurve.
4. Kræv JS
Der er noget særligt om RequireJS, fordi det primært er et JS værktøjssæt. Det kan bruges til Indlæsning af JS-moduler hurtigt inklusive Node-moduler.
Kræv JS kan Opdager automatisk krævede afhængigheder baseret på det, du bruger, så kan dette være relateret til klassisk softwareprogrammering i C / C ++, hvor biblioteker er inkluderet i yderligere biblioteker.
Du finder en interessant GitHub diskussion om dette emne og den værdi, det tilbyder moderne webudviklere. Tilladt andre JS-styringsværktøjer som webpack har dukket op, RequireJS arbejder stadig i produktionsmiljøer. Og hvis det virker for dig, er det alt, hvad der betyder noget.
5. Jam
Browserbaseret pakkehåndtering kommer i en ny form med JamJS. Dette er en JavaScript-pakkeadministrator med automatisk styring svarende til RequireJS.
Alle dine afhængigheder er trukket ind i en enkelt JS-fil, som lader dig tilføje og fjerne genstande hurtigt. Plus disse kan opdateres i browseren uanset andre værktøjer, du bruger (som RequireJS).
Biblioteker opdateres ud fra de seneste versioner gennem terminalen. Hvert projekt kan være oprettet automatisk med optimerede komponenter baseret på dine behov. Jam er gratis på GitHub og værd at se, hvis du har tid.
6. Browserify
De fleste udviklere kender Browserify, selvom det ikke er en del af deres typiske workflow. Dette er et andet afhængighedsstyringsværktøj, der optimerer nødvendige moduler og biblioteker ved at kombinere dem sammen.
Disse bundter er understøttes i browseren hvilket betyder at du kan inkludere og fusionere moduler med almindeligt JavaScript. Alt du behøver er NPM for at komme i gang, og derefter Browserify for at komme i bevægelse.
Tjek denne introduktionstutorial for at se, hvordan Node kan styres lige i browseren. Der er også en langvarig Browserify-håndbog på GitHub gratis. Tanken er at bringe alle disse Node-værktøjer i browseren og spare tid ved at automatisere processen med Browserify.
7. Mantri
MantriJS er stadig i sine tidlige stadier af vækst et afhængighedssystem til web-applikationer mellem mellem til høj. Afhængigheder styres gennem navneområder og organiseret funktionelt for at undgå kollisioner og reducere rod.
Mantri er i øjeblikket på v0.2.2 på tidspunktet for skrivningen. Det er helt open source og bygget til mere komplekse webapplikationer, der kræver store bundle af afhængigheder. Mantri har til formål at følge modulære programmeringspraksis og håber at opmuntre udviklere på samme vej.
8. Volo
Projektstyringsværktøjet volo er en open source NPM repo, der kan oprette projekter, tilføje biblioteker og automatisere arbejdsgange.
Volo kører inde i Node og er afhængig af JavaScript til projektstyring. En kort introduktionsguide findes på GitHub, der forklarer installationsprocessen og almindelig brug. For eksempel hvis du kører kommandoen volo skabe
Du kan anbringe noget bibliotek som HTML5 Boilerplate.
Men bortset fra at skabe nye projekter kan du også Tilføj / opdater biblioteker til ældre projekter. Volo binder til alt, hvad du vil have brug for til udvikling af fronten. Se nærmere på Volos designmål for at se, hvordan det fungerer i et virkeligt projekt.
9. Ender
Ender er “bibliotek uden bibliotek” og er en af de letteste pakkeforvaltere, du finder online. Det tillader devs at Søg gennem JS-pakker og installer / kompilér dem lige fra kommandolinjen. Ender er tænkt som “NPMs lille søster” af dev holdet.
Naturligvis er hele Ender-rammerne gratis tilgængelige på GitHub. Det er simpelthen et værktøj, som du installerer til at hjælpe administrere forbruget af frontend JavaScript rammer for lokale projekter. Alt er meningen at løbe med lethed til det fulde potentiale for en frontend-udviklerens arbejdsgang.
Hoved Ender-webstedet har kvalitetsdokumentation, så det er et overblik værd, hvis du er interesseret.
10. pip
Den anbefalede metode til installation af Python afhængigheder er via pip. Dette værktøj blev oprettet af Python Packaging Authority, og det er helt open source ligesom Python selv.
De fleste Python-udviklere anbefaler pip for afhængigheder, herunder Django-holdet. Uanset om du lige er begyndt med Python eller allerede bruger den konsekvent med backend-udvikling, er dette en pakkechef, du vil være glad for at have i din værktøjskasse.
11. Komponist
Komponist er en pakkechef meget ligner NPM, men det er udelukkende rettet mod PHP-biblioteker. Du kan finde en liste over afhængigheder på Packagist, som indeholder store PHP-rammer som Laravel.
Hvis du er en PHP-udvikler Af nogen art anbefaler jeg seriøst at se på Komponist. Det er Let at komme i gang, men svært at passe ind i din arbejdsgang. Men med praksis bliver det en hæftning til PHP dev projekter.
Dette er et alsidigt værktøj med potentialet til at vokse endnu større i tiden. Plus NPM kan blande med Composer for at skabe et frontend + backendafhængighedsstyringssystem til alle dine PHP / JS-projekter.
Afslutter
Det er klart, at mange af disse afhængighedschefer har lignende træk med lignende kvaliteter. Nogle er bygget til løse alternative problemer og kan endda køre i takt med hinanden (dvs. kompositør og NPM).
Emnet for afhængighedsstyring kan være svært for nye udviklere. Jeg anbefaler at vælge et af disse værktøjer og undersøge dybtgående for at lære så meget som muligt. Prøv at opbygge små webapps og lære, hvorfor afhængighedsstyring er nyttig.
Når du først har læst, hvordan du bruger disse værktøjer til din arbejdsgang, vil du aldrig overveje at gå tilbage.