Npm: opdatering af dit projekt

(Last Updated On: 28. april 2021)

Opdater selve npm

For at opdatere selve npm:

Få vist npm’s version:

npm outdated

Vis pakker der er forældet, dvs. udkommet i nyere versioner:

Current
Den version der pt. er installeret

Wanted
Den version der bør installeres iht. reglerne (semver) i package.json

Latest
Den senest tilgængelige version

Opdater iht. semver

Hvis du blot vil opdatere iht. reglerne specificeret i package.json:

Hvis du på et tidspunkt ønsker at udelade specifikke pakker fra din opdatering, skal du sætte dig lidt ind i hvordan opdateringen fortolker  værdien ud for “version” i package.json

latest – Hent den absolut nyeste version af denne pakke
1 – Hent seneste 1.x.x
1.2 – Hent seneste 1.2.x
^1.2.3 – Hent seneste 1.x.x og som minimum 1.2.3
~1.2.3 – Hent seneste 1.2.x og som minimum 1.2.3
 
Dvs. hvis seneste version af typescript er 3.9.7 og jeg kun ønsker at opdatere til seneste 3.8.x version (som er den Angular 9 i skrivende stund ønsker), kan jeg i package.json angive følgende:
 

eller

Opdater til nyeste versioner

Hvis det er nyt for dig at udvikle et projekt med Angular, er du måske lidt forsigtig med at opdatere til nyeste versioner. Især hvis nogen af pakkerne har en ny major version. Men jeg har nu gjort det flere gange uden nogen problemer. Kun een gang var der en fejl, og den kunne jeg nemt google mig til løsningen af. Det er i min optik helt klart bedst at benytte de nyeste version og sørge for jævnligt at opdatere. 

Hvis du ønsker at opdatere til nyeste version af alle pakker:

npm-check-updates

Dette værktøj opdaterer versionerne i package.json til de nyest tilgængelige. Herefter kan vi så bruge npm install til at installerer alle de nye versioner.

Hvis du ikke har npm-check-updates, kan du installerer den som følger:

… og herefter kører den:

eller den forkortede udgave:

Eksempel på output:

npm install

Nu kan vi installere de nye versioner:

Kort og godt

Nu kan du fremover opdatere pakkerne i dit projekt i een simpel arbejdsgang

eller blot:

Output fra kommandoen npm outdated burde nu være helt tom.

Byg dit projekt og tjek at alt virker som vanligt. Læs release notes på de pakker der er opdateret til ny major version.

Fejlhåndtering

Nedgradering af pakke

I mit Angular 6 projekt fik jeg denne fejl efter opdatering:

Det ovenstående meddelelse fortæller er, at min nuværende version af Angular kun understøtter version 2.7.2 til 2.9-* af Typescript. Og det viser sig da også at support for Typescript 3, først kommer i Angular 7.

Jeg skal derfor nedgradere Typescript. Det er meget simpelt… jeg installerer blot den version jeg ønsker, og --save parameteren sørger for at ændre versionen i package.json

Pakke med sårbarheder

Efter en opdatering fik jeg denne besked:

Kør en audit for at få mere information:

Løsningen skulle være at installere en nyere version af build-angular, men hvorfor havde jeg ikke den? Jeg havde jo lige opdateret det hele. Men npm update opdaterer kun iht. reglerne i package.json. Jeg havde ikke benyttet ncu som jeg plejer.

Særlig vedr Angular projekter

Først og fremmest går du til Angular Update Guide og angiver hvilken version du opdaterer fra og til.

Herefter får du udførlige instrukser i hvad du skal gøre og være opmærksom på før, under og efter opdateringen.