Welche Version gewinnt? (npm, yarn)

Hendoul

Lt. Commander
Dabei seit
Apr. 2008
Beiträge
1.581
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.
 

NJay

Commander
Dabei seit
Aug. 2013
Beiträge
2.856
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.
 

Hendoul

Lt. Commander
Ersteller dieses Themas
Dabei seit
Apr. 2008
Beiträge
1.581
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.
 
Top