Installasjonsguider

npm-kommandoer: guide til pakkehåndtering

Vi viser steg for steg, med eksempler på kommandoer, hvordan du installerer og oppdaterer pakker med npm, kjører skript og styrer package.json.

Aurora YazılımRedaksjonen 6 min lesetid
npm-kommandoer: guide til pakkehåndtering
Hvilke npm-kommandoer brukes mest?

Det meste av det daglige arbeidet gjøres med noen få npm-kommandoer: npm init starter prosjektet, npm install installerer avhengighetene, npm install pakkenavn legger til en ny pakke, npm run skriptnavn kjører skriptet i package.json, og npm update oppdaterer pakkene. npx kjører et verktøy én gang uten å installere det; npm ci gir en ren installasjon som følger låsefilen nøyaktig.

Hva er npm, og hva brukes det til?

npm (Node Package Manager) er JavaScript-verdenens pakkebehandler. Den lar deg legge til biblioteker andre har skrevet i prosjektet ditt, følge versjonene deres og kjøre prosjektets kommandoer fra ett sted.

npm følger med Node.js, så du trenger ikke installere det separat. Har du ikke installert Node.js ennå, følger du først guiden vår for Node.js-installasjon og prøver deretter kommandoene i denne artikkelen i din egen terminal.

npm har tre deler: kommandolinjeverktøyet på maskinen din, registeret (registry) der pakkene ligger, og filen package.json, som er hjertet i hvert prosjekt. Nesten alle kommandoene leser eller oppdaterer denne filen.

Hva er package.json?

package.json er prosjektets identitetskort: her står navn, versjon, avhengigheter og skriptene som kan kjøres. I et nytt prosjekt lager du filen med npm init; flagget -y besvarer alle spørsmål med standardsvar.

  • dependencies: Pakker applikasjonen trenger mens den kjører.
  • devDependencies: Verktøy som bare trengs under utvikling og bygging (kompilator, testverktøy, formaterer).
  • scripts: Korte kommandoer som kjøres med npm run.
  • package-lock.json: Lagrer den nøyaktige versjonen av hver installert pakke; legg alltid denne filen til i Git.
bashStarte et nytt prosjekt
mkdir ilk-proje
cd ilk-proje
npm init -y
jsonEksempel på package.json
{
  "name": "ilk-proje",
  "version": "1.0.0",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "test": "node --test"
  },
  "dependencies": {
    "axios": "^1.7.0"
  },
  "devDependencies": {
    "vite": "^6.0.0"
  }
}

Installere pakker med npm install

npm install er den mest brukte kommandoen og gjør to forskjellige ting. Skrevet alene installerer den alle avhengighetene i package.json i mappen node_modules; skrevet med et pakkenavn installerer den pakken og legger den til i package.json. Kortformen er npm i.

bashInstallasjonskommandoer
# Installer alle avhengighetene i prosjektet
npm install

# Yeni paket ekle (dependencies)
npm install axios

# Legg til et utviklingsverktøy (devDependencies)
npm install -D prettier

# Installer en bestemt versjon
npm install lodash@4

# Global installasjon (for kommandolinjeverktøy)
npm install -g serve

# Fjern pakken
npm uninstall axios

Globalt eller lokalt?

Installer pakker lokalt så langt det går; da fungerer prosjektet med de samme versjonene på en annen maskin også. Bruk global installasjon bare for kommandolinjeverktøy du skal bruke overalt, og for engangsverktøy holder npx.

Når bruker du npm ci?

npm ci sletter mappen node_modules og installerer nøyaktig versjonene i package-lock.json, uten å endre låsefilen. Det er ideelt for utrulling på server, for kontinuerlig integrasjon og for å løse problemer av typen «det fungerte hos meg».

Kjøre skript med npm run

Feltet scripts i package.json lar deg gi lange kommandoer korte navn. Slik kan alle på teamet starte utviklingsserveren med npm run dev og produksjonsbyggingen med npm run build, uten å kunne detaljene i verktøyet.

Noen navn, som start og test, er spesielle; de fungerer uten run. For å sende ekstra parametere til et skript brukes to bindestreker.

bashSkriptkommandoer
npm run dev
npm run build
npm start
npm test

# List opp alle definerte skript
npm run

# Send parametere til skriptet
npm run build -- --mode staging

pre- og post-skript

Setter du pre eller post foran navnet på et skript, kjører npm det automatisk før eller etter. Et skript som heter prebuild, kan for eksempel rydde den gamle byggemappen rett før npm run build. Denne ordningen sørger for at ingen på teamet glemmer et steg.

Hvorfor finner skript lokale verktøy?

Mens npm run kjører, legger det midlertidig mappen node_modules/.bin i prosjektet til i PATH. Derfor holder det å skrive bare vite eller prettier i skriptet; du trenger ikke installere verktøyet globalt. Hvis det samme verktøyet ikke blir funnet når du skriver det rett i terminalen, er dette grunnen, og løsningen er å bruke npx.

Forskjeller mellom operativsystemer i skript

Kommandoer som rm -rf fungerer ikke i standardskallet i Windows. Har teamet ulike operativsystemer, bør du velge plattformuavhengige Node.js-verktøy eller korte Node.js-skript i skriptene; da gir den samme package.json samme resultat på alle maskiner.

Oppdatere og revidere pakker

Pakker oppdateres jevnlig; sikkerhetshull tettes, og nye funksjoner kommer. For å se hva som er utdatert før du oppdaterer, kjører du kommandoen npm outdated.

Tegnet ^ i package.json tillater mindre versjoner og patch-versjoner (1.7.0 → 1.9.2), og tegnet ~ bare patch-versjoner (1.7.0 → 1.7.5). npm update oppdaterer innenfor disse grensene; for å hoppe over en hovedversjon må du installere pakken på nytt med @latest, og det krever vanligvis endringer i koden.

bashOppdatering og sikkerhet
# Eskiyen paketleri listele
npm outdated

# Oppdater innenfor tillatt intervall
npm update

# Bytt til ny hovedversjon (bruk med forsiktighet)
npm install axios@latest

# Sikkerhetsrevisjon
npm audit
npm audit fix

# Vis installerte pakker
npm ls --depth=0
npm ls -g --depth=0

# Siste utgitte versjon av en pakke
npm view axios version

Hva er npx, og når bruker du det?

npx er en pakkekjører som følger med npm. Den lar deg kjøre et verktøy én gang uten å installere det globalt; verktøyet letes først opp i node_modules i prosjektet, og lastes midlertidig ned hvis det ikke finnes.

Å lage en prosjektmal er den vanligste bruken av npx. For å opprette et nytt React-prosjekt med Vite brukes for eksempel kommandoen npm create; detaljene finner du i artikkelen vår om React-installasjon med Vite.

bashEksempler på npx
# Publiser mappen på en lokal server
npx serve .

# Kjør formatereren som er installert i prosjektet
npx prettier --write .

# Nytt prosjekt fra mal (gjør det samme som npm create og npx create-...)
npm create vite@latest

Forskjellen på npm, yarn og pnpm

npm er ikke det eneste valget; yarn og pnpm installerer også pakker fra det samme registeret. Siden alle tre bruker package.json, endres ikke prosjektstrukturen; forskjellen ligger i installasjonshastighet, diskbruk og låsefil.

  • Bruk én enkelt pakkebehandler i et prosjekt; to låsefiler samtidig fører til versjonsforvirring.
  • Går du inn i et eksisterende prosjekt, ser du på låsefilen i mappen og velger det samme verktøyet.
  • Hvis du akkurat begynner, er det minst friksjon å starte med npm.
VerktøyLåsefilFremtredende egenskap
npmpackage-lock.jsonFølger med Node.js, ingen ekstra installasjon
yarnyarn.lockArbeidsområder (workspaces) og ulike installasjonsmoduser
pnpmpnpm-lock.yamlSparer diskplass ved å lagre pakkene i et felles lager

Vanlige feil og løsninger

De fleste npm-feil skyldes ødelagt buffer, en inkompatibel Node.js-versjon eller avhengigheter som er i konflikt. Les først de første linjene i feilmeldingen; løsningen står som regel der.

  • ERESOLVE / peer dependency-feil: En av pakkene forventer en annen versjon av en annen pakke. Oppdater pakkene til kompatible versjoner; som midlertidig løsning kan npm install --legacy-peer-deps brukes.
  • Ødelagt node_modules: Slett mappen node_modules og kjør npm install eller npm ci. Å slette låsefilen er siste utvei.
  • Bufferproblem: npm cache verify kontrollerer bufferen; om nødvendig tømmer du den med npm cache clean --force.
  • EACCES-tillatelsesfeil: Ikke bruk sudo ved global installasjon; installer Node.js på nytt med nvm.
  • Engine-advarsel: Hvis en pakke krever en nyere Node.js, bytter du til LTS-versjonen med nvm.

Slik bruker du npm riktig i prosjekter

For mange pakker øker både sikkerhetsrisikoen og mengden JavaScript siden sender til nettleseren. Å spørre «kan jeg løse dette med noen få linjer kode?» før hver nye avhengighet er den billigste optimaliseringen for sidehastighet. Dette tar vi jevnlig opp i tjenesten vår hastighet og ytelse.

Legg aldri mappen node_modules til i Git; skriv den inn i .gitignore-filen og del bare package.json og låsefilen. Hvordan du sender prosjektet til et eksternt repositorium, har vi forklart steg for steg i guiden for å laste opp prosjekt til GitHub.

Planlegger du webdesign for virksomheten din eller et integrasjonsprosjekt som kobler sammen betalings-, frakt- og regnskapssystemer, senker det vedlikeholdskostnadene på lang sikt å sette opp avhengighetsstyringen riktig fra start. For mer Node.js-innhold kan du ta en titt på siden for nodejs.

Vanlige spørsmål

01Kan jeg slette filen package-lock.json?

Det anbefales ikke. Filen sørger for at alle på teamet og serveren installerer de samme versjonene; sletter du den, kan det komme andre underversjoner ved neste installasjon.

02Hva er forskjellen på npm install og npm ci?

npm install oppdaterer låsefilen ved behov og installerer oppå eksisterende node_modules. npm ci bygger mappen opp fra bunnen og gir feil hvis låsefilen og package.json ikke stemmer overens; derfor er det mer pålitelig for utrulling.

03Hvorfor fungerer ikke kommandoen til en pakke jeg installerte globalt?

Den globale pakkemappen er kanskje ikke i PATH, eller du kan ha byttet Node.js-versjon. Se mappen med kommandoen npm prefix -g og legg den til i PATH; bruker du nvm, installerer du pakken på nytt i den nye versjonen.

Å lære npm-kommandoer åpner døren til moderne webutvikling: du installerer med npm install, kjører med npm run og ruller trygt ut med npm ci. Vil du gjøre denne infrastrukturen om til et system tilpasset virksomheten din, kan du se Aurora Yazılıms skreddersydde programvareløsninger eller ta kontakt med oss om prosjektet ditt.