Kāda ir atšķirība starp tilde(~) un caret(^) package.json?

Pēc tam, kad es atjaunināju uz jaunāko stabilo node un npm, es mēģināju npm install moment --save. Tas saglabā ierakstu package.json ar prefiksu ^. Iepriekš tas bija ar tilde ~ prefiksu.

  1. Kāpēc šīs izmaiņas ir veiktas npm?
  2. Kāda ir atšķirība starp tilde ~ un caret ^?
  3. Kādas ir priekšrocības salīdzinājumā ar citiem?
Risinājums

Skatiet NPM dokumentus

~version "Aptuveni līdzvērtīgs version" Skatīt semver. ~1.2.3 izmantos versijas no 1.2.3 līdz ^version Atjauninās uz nākamo galveno versiju Skatīt semver. ^2.3.4 izmantos versijas līdz 3.0.0. Skatīt komentārus tālāk.

Komentāri (20)

~ nosaka lielos un mazos skaitļus. To izmanto, ja esat gatavs pieņemt kļūdu labojumus savā atkarībā, bet nevēlaties, lai tiktu veiktas potenciāli nesaderīgas izmaiņas.

^ nosaka tikai galveno numuru. To izmanto, ja jūs uzmanīgi uzraugāt savas atkarības un esat gatavi ātri mainīt kodu, ja minor relīze būs nesaderīga.

Turklāt ^ nav atbalstīta vecās npm versijās, un to vajadzētu lietot piesardzīgi.

Tātad ^ ir labs noklusējuma variants, taču tas nav perfekts. Es iesaku rūpīgi izvēlēties un konfigurēt semver operatoru, kas jums ir visnoderīgākais.

Komentāri (4)

~ : Pamatoti tuvu pie


   ~1.1.5: 1.1.0 
Komentāri (2)