Hva er forskjellen mellom tilde(~) og caret(^) i package.json?
Etter at jeg oppgraderte til siste stabile node
og npm
, prøvde jeg npm install moment --save
. Den lagrer oppføringen i package.json
med prefikset ^
. Tidligere var det en tilde ~
prefiks.
- Hvorfor er disse endringene gjort i
npm
? - Hva er forskjellen mellom tilde
~
og caret^
? - Hva er fordelene fremfor andre?
3102
3
Se NPM-dokumentasjonen.
~version "Approximately equivalent to version" Se semver. ~1.2.3 vil bruke utgivelser fra 1.2.3 til ^version Oppdaterer deg til neste hovedversjon Se semver.
^2.3.4
vil bruke versjoner opp til 3.0.0. Se kommentarer nedenfor.~
retter major- og minor-nummer. Den brukes når du er klar til å akseptere feilrettinger i avhengigheten, men ikke ønsker noen potensielt inkompatible endringer.^
retter bare major-nummeret. Den brukes når du følger nøye med på avhengighetene dine og er klar til å endre koden raskt hvis minor-utgivelsen blir inkompatibel.I tillegg er
^
ikke støttet av gamle npm-versjoner, og bør brukes med forsiktighet.Så
^
er en god standard, men den er ikke perfekt. Jeg foreslår at du nøye velger og konfigurerer den semver-operatoren som er mest nyttig for deg.~
: Rimelig nært til