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.

  1. Hvorfor er disse endringene gjort i npm?
  2. Hva er forskjellen mellom tilde ~ og caret ^?
  3. Hva er fordelene fremfor andre?
Løsning

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.

Kommentarer (20)

~ 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.

^ 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.

Kommentarer (4)

~ : Rimelig nært til


   ~1.1.5: 1.1.0 
Kommentarer (2)