Afhankelijkheden maken effectief hergebruik van code mogelijk. Zorg ervoor dat u weet hoe u ze moet beheren in uw Node-projecten.

Een afhankelijkheid is een stuk code (een bibliotheek, een module of een pakket) dat een project nodig heeft om correct te functioneren.

In Node.js zijn afhankelijkheden en devDependencies categorieën van pakketten die u in uw pakket.json-bestand kunt definiëren om de afhankelijkheden van uw project te beheren. Ontdek hun verschillen en leer hoe u ze kunt gebruiken in uw projecten.

Regelmatige afhankelijkheden in een npm-project

Regelmatige afhankelijkheden, of eenvoudigweg afhankelijkheden, zijn pakketten die uw toepassing nodig heeft om te werken zoals bedoeld tijdens runtime en in productieomgevingen.

Afhankelijkheden kunnen zijn:

  • Externe bibliotheken die kant-en-klare functionaliteit bieden, zoals lodash.
  • Frameworks die een basis of structuur bieden voor het bouwen van applicaties, zoals Express of React.
  • Databasestuurprogramma's, zoals MongoDB of sqlite3.
  • Pakketten die helpen bij netwerkgerelateerde taken, zoals Axios of Socket.io.
instagram viewer

Als u bijvoorbeeld een CRUD-API met Express.js, nadrukkelijk zal een van uw afhankelijkheden zijn omdat uw server het nodig heeft om te functioneren.

Om de runtime-afhankelijkheden te installeren, kunt u een pakketbeheerder gebruiken zoals npm, de Node Package Manager, of garen.

Er zijn afhankelijkheden onder het object dependencies in een package.json-bestand. Het object dependencies slaat de namen en versies van de pakketten op.

Voer de onderstaande opdracht uit om een ​​pakket als een afhankelijkheid te installeren met behulp van NPM:

npm installeren 

De bovenstaande opdracht installeert het pakket en registreert het als een afhankelijkheid van uw project in pakket.json:

// pakket.json

"afhankelijkheden": {
"verpakkingsnaam": "^pakketversie",
}

Wanneer u een project kloont vanuit een webgebaseerde repository, kunt u de afhankelijkheden installeren door de onderstaande opdracht uit te voeren:

npm installeren

Wanneer u de bovenstaande opdracht uitvoert, leest uw pakketbeheerder het pakket.json bestand en installeert de opgegeven afhankelijkheden en devDependencies uit het pakketregister.

Ontwikkelingsafhankelijkheden en hoe ze te gebruiken

Ontwikkelingsafhankelijkheden, of devDepenendencies, zijn pakketten die uw toepassing alleen nodig heeft tijdens het ontwikkelingsproces. Met andere woorden, ze zijn niet nodig bij de productie.

devDependencies kunnen zijn:

  • Kaders testen, zoals Jest of Mocha.
  • Testlopers, zoals Chai.
  • Linters en formatters, zoals Eslint.
  • Documentatietools, zoals Swagger.

Een veelvoorkomend voorbeeld van een devDependency is het Nodemon-pakket, waarmee uw server opnieuw wordt opgestart wanneer het wijzigingen in uw scripts detecteert.

U kunt devDependencies definiëren onder de devAfhankelijkheden voorwerp in een pakket.json bestand. Dit object slaat de namen en versies van de pakketten op.

U kunt een pakket installeren als een devDependency door deze opdracht uit te voeren:

npm installeren  --save-dev

U kunt ook een pakket als een devDependency installeren door deze opdracht uit te voeren:

npm installeren -D 

De bovenstaande opdracht installeert en registreert het pakket in uw pakket.json bestand, zoals zo:

// pakket.json
"devAfhankelijkheden": {
"verpakkingsnaam": "^pakketversie"
}

Wanneer u een project kloont vanuit een webgebaseerde repository, voert u het npm installeren opdracht zal ook devDependencies.

Echter, het uitvoeren van de opdracht met de productie flag installeert alleen de afhankelijkheden.

Bijvoorbeeld:

npm install --productie

Wanneer u de bovenstaande opdracht uitvoert, leest uw pakketbeheerder het pakket.json bestand en installeert de afhankelijkheden van uw toepassing vanuit het pakketregister.

Als alternatief kunt u de NODE_ENV variabel naar "productie” om dezelfde resultaten te bereiken.

Andere soorten afhankelijkheden

Naast afhankelijkheden en devDependencies, categoriseert Node.js ook pakketten als peerDepenecies En optioneleAfhankelijkheden.

Afhankelijkheden van collega's

Peer-afhankelijkheden zijn afhankelijkheden die een pakket gebruikt wanneer het verwacht dat een specifieke versie of een compatibele versie van een ander pakket aanwezig is in de toepassing die het gebruikt.

Het doel van peer-afhankelijkheden is ervoor te zorgen dat een pakket correct werkt met zijn afhankelijkheden en om conflicten of compatibiliteitsproblemen te vermijden.

Voor npm-versies lager dan v7 worden peer-afhankelijkheden niet automatisch geïnstalleerd. De code die het pakket bevat, moet het eerder als een afhankelijkheid bevatten. Als het pakket het niet bevat, geeft npm een ​​waarschuwing.

Ze bestaan ​​onder de peerDependencies object in het bestand package.json:

"peerAfhankelijkheden": {
"pakket": "^versie"
}

Optionele afhankelijkheden

Optionele afhankelijkheden zijn pakketten die niet essentieel zijn voor de kernfunctionaliteit van een project, maar die de mogelijkheden ervan kunnen verbeteren, indien beschikbaar.

Aangezien optionele afhankelijkheden niet vereist zijn om het project correct te laten werken, kunt u ze tijdens de installatie weglaten.

Als u de onderstaande opdracht uitvoert, worden optionele afhankelijkheden overgeslagen tijdens het installatieproces:

npm install --omit=optioneel

Ze bestaan ​​onder de optioneleAfhankelijkheden object in het bestand package.json:

"optionele afhankelijkheden": {
"pakket": "^versie"
}

Categorieën maken het gemakkelijker om uw afhankelijkheden te beheren

Het effectief begrijpen, beheren en categoriseren van afhankelijkheden zorgt voor een duidelijke scheiding tussen de pakketten die nodig zijn voor productie en de pakketten die alleen nodig zijn tijdens de ontwikkeling.

Dit onderscheid helpt efficiënt afhankelijkheidsbeheer, juiste bundeling en gestroomlijnde implementatie van uw project.