NPM: JavaScript-pakketten beheren

Introductie NPM

Wat is NPM?NPM (Node Package Manager) is een pakketbeheerder voor JavaScript, het is de standaard voor node.js. Wanneer u node installeert, wordt ook NPM geïnstalleerd. En wat betekent dit? Welnu, via NPM kunnen we de pakketten voor onze applicaties installeren en beheren.

Als we Node.js gebruiken, moeten we snel nieuwe modules (bibliotheken) installeren, omdat Node, een sterk modulair systeem, praktisch leeg is. Voor de meeste bewerkingen zullen we dus extra modules moeten installeren. Deze bewerking is heel eenvoudig te doen met de NPM-tool.

Hoe Node.js installeren?Om Node.js te installeren, moeten we eerst naar de officiële website gaan:

https://nodejs.org/

En download het installatieprogramma volgens ons besturingssysteem.

VERGROTEN

Bij het downloaden van het installatiebestand dubbelklikken we erop en volgen we de instructies van de Node.js installatiewizard.

Eenmaal geïnstalleerd voor Windows-gebruikers, is de node.js-console toegankelijk vanaf de startbalk, zoals weergegeven in de volgende afbeelding:

VERGROTEN

Mac-gebruikers moeten de terminal van hun besturingssysteem openen, zoals weergegeven in de volgende afbeelding:

VERGROTEN

Om te controleren of het correct is geïnstalleerd, voeren we het volgende commando uit in onze terminal:

 geef niet
(Windows / Linux / Terminal OS X-console)

We duwen Binnenkomen en we voeren de volgende regel in:

 Console.log ('Node.js succesvol geïnstalleerd');
(Windows / Linux / Terminal OS X-console)

Door te drukken Binnenkomen, het zal ons het bericht laten zien "Node.js succesvol geïnstalleerd". Om de lijst met opdrachten te zien die zijn toegestaan ​​door node.js, voeren we de opdracht in: .helpen zoals weergegeven in de volgende afbeelding:

Om de . te bekijken NPM-versie geïnstalleerd, voeren we het volgende commando uit:

 npm -v
Wat resulteert in het volgende:

Pakket manager
De NPM pakketbeheerder, is een beetje anders dan andere pakketbeheerders die we misschien kennen, omdat het ze lokaal in de projecten installeert. Dat wil zeggen, wanneer een module wordt gedownload, wordt deze toegevoegd aan een lokaal project, dat het beschikbaar zal hebben om op te nemen. Hoewel er ook de mogelijkheid is om de pakketten wereldwijd op ons systeem te installeren.

Een nieuw project starten

Wanneer we een nieuw project starten met node.js, is het noodzakelijk om een ​​bestand met de naam package.json aan te maken. Dit is een soort manifest dat op zijn beurt de lijst bevat van alle afhankelijkheden die uw project zal gebruiken.

Gebruik van pakket.json


De beste manier om lokaal geïnstalleerde pakketten te beheren, is door een package.json-bestand te maken, hierdoor kunnen we:
  • Documenteer welke pakketten ons project gebruikt.
  • Specificeer welke specifieke pakketversie ons project zal gebruiken.
  • Het stelt ons in staat om onze afhankelijkheden gemakkelijk te delen met andere ontwikkelaars.

Vereisten:

Een package.json-bestand moet ten minste het volgende bevatten:

1. Naam:

  • Allemaal in kleine letters.
  • Eén woord zonder spatie.
  • Streepjes en onderstrepingstekens zijn toegestaan.

2. Versie:

Voorbeeld van een package.json:

 {"Naam": "project_package", "Versie": "1.0.0"}
Als u een nieuwe . wilt genereren pakket.json, er zijn 2 manieren om dit te doen:

1. Laad een standaard package.json: Vanaf de console voeren we de volgende opdrachtregel uit.

 npm init --ja
Wat resulteert in het volgende:

Om deze configuratie te wijzigen, openen we eenvoudig het bestand dat is gemaakt met een teksteditor en wijzigen we de gewenste kenmerken.

2. Maak een package.json met de wizard: In de console voeren we het volgende commando uit.

 npm init
De wizard zal u vragen wat u aan elk attribuut wilt toevoegen, wat resulteert in het volgende:

Afhankelijkheden installeren


Op de website https://www.npmjs.com/ vind je honderden projecten; die zijn gepositioneerd volgens verschillende criteria (aantal downloads, populariteit …). Vanaf de webpagina is dit de snelste manier, maar NPM heeft ook een zoekparameter om naar pakketten te zoeken. Om dit te doen, moet u de volgende opdrachtregel uitvoeren:

Lokale installatie
Zodra het bestand is gedefinieerd pakket.json, kunt u de afhankelijkheden erin toevoegen en een lijst toevoegen met alles wat u nodig hebt:

 "dependencies": {"express": "*", "grunt": "*", "bower": "*"}
Wat als volgt zou moeten zijn:

Installeer de pakketten die worden vermeld in package.jsonOm de in package.json vermelde pakketten en hun afhankelijkheden te installeren, moet u zich in de map bevinden waar het bestand zich bevindt en de volgende opdrachtregel uitvoeren:

 npm installeren

Pakketten installerenJe kan ook installeer nieuwe pakketten en sla ze op vanaf terminal, door het volgende uit te voeren:

 npm install --save new_package_name

Pakketten verwijderenPakket verwijderen en verwijder het uit pakket.json:

 npm uninstall --save pakketnaam

Installeer het pakket rechtstreeks vanuit een Git-repository

 npm install git: //github.com/blured/mipaquete.git

Installeer een specifieke versie van een pakket

 npm install [email protected]

Het is belangrijk op te merken dat deze lokale installatiemethode betekent dat uw bestanden worden opgeslagen en alleen beschikbaar zijn in uw projectdirectory.

Wereldwijde installatie
Een andere manier om pakketten te installeren, is door het wereldwijd te doen. Dit wordt vaak gebruikt voor pakketten die functionaliteit bieden vanaf de opdrachtregel, zoals onder andere grunt, bower, yeoman.

Neem bijvoorbeeld de JSHint-pakket, een JavaScript-code-analysator waarmee we punten kunnen weergeven waarin uw code niet voldoet aan bepaalde vastgestelde regels van "schone code". Om het wereldwijd te installeren, voeren we de install commando het toevoegen van de -g attribuut en met root-privilege (voor Mac- en Linux-gebruikers).

 sudo npm install -g jshint
 npm install -g jshint

Om de installatie te bevestigen, voert u gewoon de opdracht uit om een ​​JavaScript-bestand op fouten te evalueren. Omdat onze installatie wereldwijd was, kunnen we vanaf elke locatie Jshint uitvoeren, waarbij het pad wordt aangegeven waar ons JavaScript-bestand zich bevindt. Voorbeeld:

 jshint-project \ MiApp \ www \ js \ index.js
Resulterend in een fout in ons JavaScript-bestand.

Om de map te kennen waarin al deze bibliotheken met globaal bereik zijn opgeslagen, kunnen we de . gebruiken prefix commando en van de marker globaal -g, als volgt:

 npm-voorvoegsel -g
In een OS X-terminal geeft dit het volgende resultaat:

in de CWindows-opdrachtprompt het pad wordt weergegeven, met als enige variabele de naam van de map van de gebruiker die de installatie heeft uitgevoerd. In dit geval zou het zijn "Zhock":

In Windows heeft NodeJS de vorige map niet gedefinieerd als globaal voor het opnemen van zijn bibliotheken via vereist. Dus als we proberen een globale bibliotheek op te nemen, krijgen we de foutmelding "Fout: Kan module niet vinden".

Om dit op te lossen, moeten we de systeemvariabele NODE_PATH definiëren, deze de waarde van het globale pad van NPM geven en aan het einde de map \ node_modules \ toevoegen.

Zoals we kunnen zien, is in Windows 7 het globale installatiepad van NPM:

 C: \ Gebruikers \ GEBRUIKER \ AppData \ Roaming \ npm \
Dus de waarde van NODE_PATH zal zijn:
 C: \ Gebruikers \ GEBRUIKER \ AppData \ Roaming \ npm \ node_modules \
Of wat is hetzelfde:
 % APPDATA% \ npm \ node_modules \

VERGROTEN

Afhankelijkheidsbeheer
Met NPM kunt u de afhankelijkheden van uw projecten en de versies die u nodig hebt beheren. Zoals bekend zijn open source-projecten actief in beweging en veranderen ze regelmatig van versie. De pakket.json het kan worden geconfigureerd om dit soort wijzigingen te beheren.

De versienummers ze bevatten normaal gesproken 3 elementen:

  • Hoofdversie wanneer deze breekt met eerdere functionaliteiten, bijvoorbeeld: 2.0.0
  • Kleine versie met nieuwe functies die bestaande niet breken, bijvoorbeeld: 1.1.0
  • Patch uitgebracht met bugfixes en andere kleine wijzigingen, bijvoorbeeld 1.0.1

Pakketversies definiëren


Laten we zeggen dat je begint met ontwikkelen met bepaalde versies van pakketten. U kunt ze bijwerken en toch de compatibiliteit behouden door het bereik van geaccepteerde wijzigingen op te geven.
 "dependencies": {"Package1": "1.0.0", // accepteert alleen versie 1.0.0 "container2": "1.0.x", // elke hotfix-versie in versie 1.0 "Package3": "* ", / / nieuwste versie," Package4 "wordt niet aanbevolen:"> = 1.0.0 ", // wijzigingen na 1.0.0" package5 ":" = 1.8.0 = 1.1.0 <2.0.0 "package8": "laatste" , // tagnaam laatste versie "package9": "", // hetzelfde als * dwz nieuwste versie "packageX": "= 2.3.1 = 2.5.2 <3.0.0" }
OpmerkingAls u niet zeker weet welke versie u moet gebruiken, voegt u het * jokerteken toe en voert u de opdracht npm update -save uit, die we later in deze zelfstudie zullen zien.

Opdracht:

 npm-update --save

Pakketten bijwerken


Om alle lokaal geïnstalleerde pakketten te zien, gebruik je het ls commando en voeg je het -l attribuut toe voor een korte beschrijving. Om globaal geïnstalleerde pakketten te bekijken, voegt u het -g attribuut toe.
 npm ls -l
Voer het volgende uit om te controleren welk pakket lokaal en globaal kan worden bijgewerkt:
 npm verouderd npm verouderd -g --diepte = 0
Om een ​​pakket lokaal naar een hogere versie dan de huidige te brengen, voert u het volgende uit:
 npm-update
Om het globaal te doen, voegt u de . toe -g attribuut

Cache beheren


Wanneer NPM een pakket installeert, bewaart het een kopie voor de volgende keer dat u het pakket wilt installeren zonder dat u een internetverbinding nodig heeft. Deze kopieën worden standaard in de volgende map opgeslagen:
 Posix (Linux, Os X…): ~ / .npm Windows:% AppData% / npm-cache
Als u wilt zien in welke map de NPM-cache wordt opgeslagen, voert u gewoon de volgende opdrachtregel uit:
 npm config cache ophalen
Deze map is meestal gevuld met oude pakketten die we niet meer gebruiken, daarom is het raadzaam om periodiek op te schonen met de volgende opdrachtregel:
 npm cache opschonen

wave wave wave wave wave