Formaty wersji zależności w npm w JavaScript

W pliku package.json wersje zainstalowanych pakietów mogą być podawane w różnych formatach. Przeanalizujmy te formaty na przykładzie wymyślonej biblioteki somelib.

W następnym przykładzie wymagana jest dokładna wersja 2.4.2:

package.json{
  "dependencies": {
    "somelib": "2.4.2"
  }
}

W następnym przykładzie wymagana jest ostatnia wersja kompatybilna z 2.4.2:

package.json{
  "dependencies": {
    "somelib": "^2.4.2"
  }
}

W następnym przykładzie projekt działa z wersjami 2.4.2, 2.4.3, 2.4.4 i tak dalej:

package.json{
  "dependencies": {
    "somelib": "~2.4.2"
  }
}

W następnym przykładzie projekt działa z wersjami 2.4, 2.5, 2.6 i tak dalej:

package.json{
  "dependencies": {
    "somelib": "~2.4"
  }
}

W następnym przykładzie projekt działa z dowolną wersją patch pakietu 2.4:

package.json{
  "dependencies": {
    "somelib": "2.4.x"
  }
}

W następnym przykładzie projekt działa z dowolną wersją minor wersji 2:

package.json{
  "dependencies": {
    "somelib": "2.x"
  }
}

W następnym przykładzie projekt działa z wersją 2.4 i wyższą:

package.json{
  "dependencies": {
    "somelib": ">=2.4"
  }
}

W następnym przykładzie projekt działa z dowolną wersją w zakresie od 2.4.2 do 3.1.1:

package.json{
  "dependencies": {
    "somelib": "2.4.2 3.1.1"
  }
}