11 Dependency Management Tools voor webontwikkelaars
Afhankelijkheden zijn een hoeksteen van moderne webontwikkeling. Dit zijn de benodigde tools, plug-ins, bibliotheken en frameworks nodig om webtoepassingen op hoog niveau te bouwen.
Het enorme aantal afhankelijkheden is de laatste paar jaar enorm toegenomen. In de loop der tijd hebben ontwikkelaars hulpmiddelen voor afhankelijkheidsbeheer geïmplementeerd die verlichten van de stress van het houden van afhankelijkheden georganiseerd en up-to-date. Deze tools leiden tot een geoptimaliseerde workflow voor ontwikkelaars en projectmanagers.
Ik heb de beste hulpprogramma's voor afhankelijkheid gecatalogeerd, inclusief zowel gevestigde als nieuw opkomende platforms. Professionele webontwikkeling vereist continu leren en ik zou stellen dat afhankelijkheidsbeheer een skillset is die de moeite van het leren waard is.
1. NPM
Ik zou deze handleiding niet kunnen schrijven zonder de knooppunt-pakketbeheerder de eer te geven. Gebouwd op Node.js, levert dit systeem een enorme opslagplaats van Meer dan 100.000 pakketten en modules.
Elk project kan een package.json-bestand instellen via NPM en zelfs beheren met Gulp (op knooppunt). Afhankelijkheden kunnen direct vanaf de terminal worden bijgewerkt en geoptimaliseerd. En u kunt nieuwe projecten bouwen met afhankelijkheidsbestanden en versienummers die automatisch uit het bestand package.json worden gehaald.
NPM is waardevol voor meer dan alleen afhankelijkheidsbeheer en het is praktisch een onmisbare tool voor moderne webontwikkeling. Als je in de war bent, kijk dan eens naar deze Reddit-thread voor een uitleg voor een beginneling.
2. Bower
Het pakketbeheersysteem Bower draait op NPM, wat een beetje overbodig lijkt, maar er is een verschil tussen beide, met name dat NPM meer functies biedt terwijl Bower streeft naar een vermindering van bestandsgrootte en laadtijden voor frontend afhankelijkheden.
Bekijk deze Stack-vraag voor meer informatie over de subtiele verschillen.
Sommige ontwikkelaars beweren dat Bower in feite achterhaald is omdat het op NPM draait, een service die bijna alles kan doen wat Bower kan doen. Over het algemeen is dit niet verkeerd.
Maar ontwikkelaars moeten zich realiseren dat Bower dat kan optimaliseer de workflow specifiek met frontend afhankelijkheden. Ik raad Ben McCormick's artikel Is Bower Nuttig aan om meer te weten te komen over de waarde die wordt geboden door beide pakketbeheertools.
3. RubyGems
RubyGems is een pakketbeheerder voor Ruby met een hoge populariteit bij webontwikkelaars. Het project is open source en inclusief alle gratis Ruby-edelstenen.
Om een kort overzicht te geven voor beginners, “edelsteen” is slechts enkele code die in een Ruby-omgeving wordt uitgevoerd. Dit kan leiden tot programma's zoals Bundler die gem-versies beheren en alles up-to-date houden.
Rails-ontwikkelaars zullen dol zijn op deze functie, maar hoe zit het met frontend-pakketten? Omdat Ruby open source is, kunnen ontwikkelaars projecten zoals Bower for Rails bouwen. Dit brengt frontend-pakketbeheer naar het Ruby-platform met een kleine leercurve.
4. VereistJS
Er is iets speciaals aan RequireJS omdat het in de eerste plaats een JS-toolset is. Het kan worden gebruikt voor snel laden van JS-modules inclusief knoopmodules.
VereisenJS kan automatisch vereiste afhankelijkheden detecteren op basis van wat u gebruikt, dus dit kan verwant zijn aan klassieke softwareprogrammering in C / C ++, waarbij bibliotheken worden opgenomen in andere bibliotheken.
Je vindt een interessante GitHub-discussie over dit onderwerp en de waarde die het moderne webontwikkelaars biedt. Toegegeven andere JS-beheerprogramma's zoals webpack zijn uitgekomen, RequireJS werkt nog steeds in productieomgevingen. En als het voor u werkt, is dat het enige dat telt.
5. Jam
Browsergebaseerd pakketbeheer komt in een nieuwe vorm met JamJS. Dit is een JavaScript-pakketbeheerder met automatisch beheer vergelijkbaar met RequireJS.
Al uw afhankelijkheden zijn opgenomen in een enkel JS-bestand dat u kunt toevoegen en verwijderen items snel. Bovendien kunnen deze worden bijgewerkt in de browser, ongeacht andere tools die u gebruikt (zoals RequireJS).
Bibliotheken worden bijgewerkt op basis van de nieuwste versies via de terminal. Elk project kan zijn automatisch gemaakt met geoptimaliseerde componenten gebaseerd op je behoeften. Jam is gratis op GitHub en een kijkje waard als je tijd hebt.
6. Browserify
De meeste ontwikkelaars weten van Browserify, zelfs als het geen deel uitmaakt van hun normale workflow. Dit is een ander beheerprogramma voor afhankelijkheid dat de vereiste modules en bibliotheken optimaliseert door ze samen te bundelen.
Deze bundels zijn ondersteund in de browser wat betekent dat je kunt modules opnemen en samenvoegen met gewoon JavaScript. Het enige dat u nodig hebt, is NPM om aan de slag te gaan en vervolgens Browserify om in beweging te komen.
Bekijk deze intro-zelfstudie om te zien hoe Node direct in de browser kan worden beheerd. Er is ook een uitgebreid Browserify-handboek dat gratis op GitHub wordt gehost. Het idee is om al deze Node-tools in de browser te plaatsen en tijd te besparen door het proces met Browserify te automatiseren.
7. Mantri
MantriJS is nog steeds in een vroeg stadium van groei en is een afhankelijkheidssysteem voor webtoepassingen van gemiddeld tot hoog niveau. Afhankelijkheden worden beheerd via naamruimten en functioneel georganiseerd om botsingen te voorkomen en rommel te verminderen.
Mantri bevindt zich momenteel op v0.2.2 op het moment van schrijven. Het is helemaal open source en gebouwd voor complexere webtoepassingen waarvoor grote bundels afhankelijkheden nodig zijn. Mantri streeft ernaar modulaire programmeringspraktijken te volgen en hoopt ontwikkelaars op dezelfde weg te stimuleren.
8. Volo
De projectbeheertool volo is een opensource NPM-repo waarmee projecten kunnen worden gemaakt, bibliotheken kunnen worden toegevoegd en workflows kunnen worden geautomatiseerd.
volo draait in het knooppunt en vertrouwt op JavaScript voor projectbeheer. Een korte introductiegids is te vinden op GitHub met uitleg over het installatieproces en algemeen gebruik. Bijvoorbeeld als u de opdracht uitvoert volo maken
je kunt elke bibliotheek zoals HTML5 Boilerplate aanbrengen.
Maar naast het maken van nieuwe projecten kun je dat ook bibliotheken toevoegen / bijwerken voor oudere projecten. Volo koppelt alles aan wat je nodig hebt voor de ontwikkeling van de frontend. Bekijk de ontwerpdoelen van Volo om te zien hoe het werkt in een realistisch project.
9. Ender
Ender is het “bibliotheek zonder bibliotheek” en is een van de lichtste pakketbeheerders die u online kunt vinden. Het laat ontwikkelaars toe om doorzoek JS-pakketten en installeer / compileer ze vanaf de opdrachtregel. Ender wordt zo gedacht “NPM's kleine zusje” door het dev-team.
Uiteraard is het volledige Ender-framework gratis beschikbaar op GitHub. Het is gewoon een tool die u installeert om te helpen het verbruik van frontend JavaScript-frameworks voor lokale projecten beheren. Alles is bedoeld om met gemak het maximale potentieel voor de workflow van een frontend ontwikkelaar te benutten.
De belangrijkste Ender-website bevat kwaliteitsdocumentatie, dus het is de moeite waard om een blik te werpen als u geïnteresseerd bent.
10. pip
De aanbevolen methode om Python-afhankelijkheden te installeren is via pip. Deze tool is gemaakt door de Python Packaging Authority en is volledig open source net als Python zelf.
De meeste ontwikkelaars van Python bevelen pip aan voor afhankelijkheden, waaronder het Django-team. Of je nu net begint met Python of het al consequent gebruikt met backend-ontwikkeling, dit is een pakketbeheerder die je graag in je toolbox hebt staan.
11. Componist
Composer is een pakketbeheerder die erg lijkt op NPM, maar zich uitsluitend richt op PHP-bibliotheken. Je kunt een lijst met afhankelijkheden vinden op Packagist die grote PHP-frameworks zoals Laravel bevat.
Als je bent een PHP-ontwikkelaar van welke aard dan ook, ik raad serieus aan om Composer te bekijken. Haar gemakkelijk om te beginnen, maar moeilijk te passen in uw workflow. Maar met de praktijk wordt het een nietje voor PHP-ontwikkelprojecten.
Dit is een veelzijdige tool met het potentieel om nog groter te worden in de tijd. Bovendien kan NPM met Composer worden gecombineerd om een frontend + backend-afhankelijkheidsbeheersysteem te creëren voor al uw PHP / JS-projecten.
Afsluiten
Het is duidelijk dat veel van deze afhankelijkheidsmanagers vergelijkbare eigenschappen hebben met vergelijkbare eigenschappen. Sommige zijn gebouwd om los alternatieve problemen op en kan zelfs samen met elkaar lopen (dwz Composer en NPM).
Het onderwerp afhankelijkheidsbeheer kan moeilijk zijn voor nieuwe ontwikkelaars. Ik raad aan om een van deze tools te kiezen en diepgaand te onderzoeken om zoveel mogelijk te leren. Probeer kleine webapps te bouwen en ontdek waarom afhankelijkheidsmanagement handig is.
Zodra u leert hoe u deze tools in uw workflow kunt toepassen, zult u nooit overwegen terug te gaan.