npm is de standaard package manager voor Node.js, de tool die developers gebruiken om externe code op te halen en bij te houden waar hun project op steunt. Als je software bouwt, schrijf je zelden alles vanaf nul. Met npm haal je een geteste bibliotheek binnen met één commando, en het onthoudt precies welke versies je project gebruikt, zodat dezelfde opzet op elke machine werkt.

Stel je een app store voor, maar dan voor code in plaats van telefoon-apps. Een developer die e-mails moet versturen, datums moet opmaken of betalingen moet afhandelen, zoekt in de npm-registry, draait één installatiecommando en de bibliotheek staat klaar in het project. De registry bevat ruim twee miljoen packages, bijna allemaal gratis en open source, en dat is een groot deel van waarom JavaScript-projecten zo snel vooruitgaan.

De boekhouding zit in twee bestanden. Een package.json noemt wat je hebt gevraagd, en een lockbestand legt de exacte versie vast van elk onderdeel dat daadwerkelijk is geïnstalleerd, inclusief de afhankelijkheden van je afhankelijkheden. Dat lockbestand is wat voorkomt dat een project zich op jouw laptop anders gedraagt dan op de server.

Er zit wel een addertje onder het gras. Elke package die je toevoegt, brengt zijn eigen afhankelijkheden mee, dus een klein project kan stilletjes honderden bestanden binnenhalen. Die lijst slank houden hoort bij goed onderhoud, en het in de gaten houden van beveiligingsmeldingen ook, want een lek in een populaire package werkt door naar elke app die hem installeerde.

Bij TopDevs kijken we de npm-packages in een klantproject zorgvuldig na, want elke package is code die we vertrouwen in productie, en een paar goedgekozen bibliotheken zijn beter dan een stapel half-gebruikte.