Mitä eroa on tilde(~) ja caret(^) välillä package.jsonissa?

Kun olin päivittänyt uusimpaan vakaaseen node ja npm, kokeilin npm install moment --save. Se tallentaa merkinnän package.jsoniin etuliitteellä ^. Aiemmin se oli tilde ~-etuliite.

  1. Miksi nämä muutokset tehdään npm:ssä?
  2. Mitä eroa on tilde ~ ja karetilla ^?
  3. Mitä etuja niillä on muihin verrattuna?
Ratkaisu

Katso NPM docs

~version "Noin vastaava kuin versio" Katso semver. ~1.2.3 käyttää versioita 1.2.3:sta ^version Päivittää seuraavaan pääversioon Katso semver. ^2.3.4 käyttää julkaisuja 3.0.0:aan asti. Katso kommentit alla.

Kommentit (20)

~ korjaa suuret ja pienet numerot. Sitä käytetään, kun olet valmis hyväksymään bugikorjaukset riippuvuussuhteessasi, mutta et halua mitään mahdollisesti yhteensopimattomia muutoksia.

^ korjaa vain major-numeron. Sitä käytetään, kun'tarkkailet tarkasti riippuvuuksiasi ja olet valmis muuttamaan koodisi nopeasti, jos minor-versio on yhteensopimaton.

Lisäksi ^ on ei tuettu vanhoissa npm-versioissa, ja sitä tulisi käyttää varoen.

^ on siis hyvä oletusarvo, mutta se ei ole täydellinen. Suosittelen valitsemaan ja konfiguroimaan huolellisesti semver-operaattorin, joka on sinulle hyödyllisin.

Kommentit (4)

~ : Kohtuullisen lähellä** sitä, että


   ~1.1.5: 1.1.0 
Kommentit (2)