Welche Version gewinnt? (npm, yarn)

Hendoul

Lt. Commander
Registriert
Apr. 2008
Beiträge
2.047
Hi :)

Folgende dependency ist im packages.json vorhanden:

Code:
grunt-protractor-runner

und im yarn.lock sieht man dann diesen Eintrag:
Code:
"grunt-protractor-runner@git://github.com/miindlek/grunt-protractor-runner#509f92da041a8b470ba9492b4cbcfbfff5a7c034":
  version "5.0.0"
  resolved "git://github.com/miindlek/grunt-protractor-runner#509f92da041a8b470ba9492b4cbcfbfff5a7c034"
  dependencies:
    protractor "^5.0.0"
    split "~1.0.0"
    through2 "~2.0.0"

und:
Code:
protractor@^5.0.0:
  version "5.4.2"


So, jetzt meine Fragen:
  1. Wird der letzte Code-Schnipsel generiert weil ein anderes package diese dependency hat?
  2. Was passiert, wenn ich explizit noch protractor selber installiere mit der Fantasie Version 5.9? Kommt dann grunt-protractor-runner durcheinander? Welche Version wird dann genommen? 5.9 oder 5.4.2?
  3. Und was ist denn die best practice hier? Solche dependencies nie selber explizit noch reinziehen?


Ich fand keinen passenderen Bereich hier im Forum um meine Frage zu stellen.
 
Ist doch aktuell alles richtig. "^5.0.0" sagt, dass alle Versionen zwischen "5.0.0" und (wenn ich mich nicht tauesche) eienr Version kleienr 6.0.0 okay. In deinem Fall ist "5.4.2" installiert, was diese Vorgabe erfuellt. Von daher passt alles.
 
Die Frage war ja nicht, ob eine gültige Version installiert ist, sondern welche Version gewinnt, wenn mehrere installiert sind. Aber ich glaube ich hab's jetzt rausgefunden. Bei NPM werden mehrere Versionen installiert. Sprich wenn ich direkt im packages.json eine Version 7 installiere, dann interessiert das ein anderes Package nicht welches auch protractor verwendet aber in einer anderen Version.
 
Zurück
Oben