consdata.com
Blog techniczny Blog biznesowy Dział HR
EN
package.json

Czy wiesz, jak zarządzać wersjami w package.json?

author Dorian Mejer
5 kwietnia 2023

package.json jest plikiem, który opisuje każdy projekt oparty o Node.js. Jedną z jego najważniejszych ról jest przechowywanie informacji o zależnościach projektu. Wersję zależności można wskazać na kilka sposobów używając do tego operatorów - ten wpis przybliża ich znaczenie. Większość operatorów jest przydatna, jeżeli zależna paczka stosuje semantyczne wersjonowanie (major.minor.patch).

Operatory >=, >, =, <, <=, ||

  • >=1.6.7 oznacza wersje od 1.6.7 w górę,
  • >=1.6.7 <2.0.0 wersje od 1.6.7 do 2.0.0, bez 2.0.0,
  • <=2.0.0 wersje do 2.0.0, włącznie z 2.0.0,
  • 1.1.1 || >=1.1.3 <2.0.0 1.1.1, większa od 1.1.3 do 2.0.0, gdy 1.1.2 powodowała problemy i chcemy ją pominąć.

Operator -

  • 1.6.7 - 2.0.0, to samo co >=1.6.7 <=2.0.0 (czyli, od X do Y włącznie),
  • 1 - 2.0.0, to samo co >=1.0.0 <=2.0.0 (pierwsza wersja zakresu uzupełniana jest zerami),
  • 1 - 2, to samo co >=1.0.0 <3.0.0 (druga wersja w zakresie, wszystko poza wersją “major” może ulec zmianie).

Operator * lub x

  • 1.*, to samo co >=1.0.0 <2.0.0,
  • 1.2.x, to samo co >=1.2.0 <1.3.0.

Operator ~

Umożliwia zmianę wersji “patch”, gdy ustawiona jest na wersji “minor” lub zmianę wersji “major”, gdy ustawiona na “major”

  • ~1.6.7 oznacza to samo co >=1.6.7 <1.7.0,
  • ~1.6 jest tym samym co >=1.6.7 <1.7.0, to samo co 1.6.* (pozwala na zmianę wersji “patch”),
  • ~1 jest tożsame z >=1.0.0 <2.0.0, oraz 1.* (pozwala na zmianę wersji “minor”),
  • ~1.2.3-beta.10, to samo co >=1.2.3-beta.10 <2.0.0, ale np: 1.2.3-beta.11 wpadnie do zakresu, natomiast 1.2.4-beta.1 już nie.

Operator ^

Umożliwia zmianę tylko pierwszej niezerowej wersji. Zmiana pierwszej niezerowej wersji często uznawana jest za “breaking-change”, ^ nas przed tym chroni.

  • ^1.2.3 jest tym samym co >=1.2.3 <2.0.0 oraz 1.*,
  • ^0.2.3 oznacza to samo co >=0.2.3 <0.3.0, i to samo co 0.*,
  • ^0.0.3, to samo co >=0.0.3 <0.0.4, oraz to samo co 0.0.*.
Najnowsze wpisy

  • Dostępność w PDF - dokumenty bez barier
  • Czy wiesz, że z pomocą @starting-style można animować elementy z display: none za pomocą samego CSS?
  • Czy wiesz, że w Angular 17 została wprowadzona alternatywa dla *ngSwitch?
Dołącz do nas

  • SENIOR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 14 900 - 20 590 PLN brutto
    B2B 19 680 - 27 220 PLN netto
  • REGULAR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 11 300 - 15 900 PLN brutto
    B2B 14 950 - 21 000 PLN netto
  • ZOBACZ WSZYSTKIE OGŁOSZENIA

newsletter

techniczny

Zapisz się

Podobne wpisy

post-image
WCAG

Dostępność w PDF - dokumenty bez barier

author
Kacper Hoffman 28 kwi 2025
post-image
angular

Czy wiesz, że z pomocą @starting-style można animować elementy z display: none za pomocą samego CSS?

author
Piotr Tatarski 7 kwi 2025
post-image
angular

Czy wiesz, że w Angular 17 została wprowadzona alternatywa dla *ngSwitch?

author
Dorian Mejer 10 mar 2025
Dołącz do nas

  • SENIOR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 14 900 - 20 590 PLN brutto
    B2B 19 680 - 27 220 PLN netto
  • REGULAR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 11 300 - 15 900 PLN brutto
    B2B 14 950 - 21 000 PLN netto
  • ZOBACZ WSZYSTKIE OGŁOSZENIA

Zapisz się na

newsletter

techniczny

consdata.com
  • Kontakt

    • sales@consdata.com
    • +48 61 41 51 000

  • Biuro

    • K9Office
      Krysiewicza 9/14
      61-825 Poznań
      Polska

  • Rozwiązania

    • Eximee
    • Kouncil
  • Blog Dołącz do nas
Copyright © 2024 Consdata. All rights reserved. Privacy Policy & Cookies
Chcemy używać plików cookie oraz skryptów podmiotów trzecich do polepszania funkcjonowania tej strony Zgadzam się