it-swarm.com.de

Der richtige Mechanismus für das Downgrade von Reaktiveren

Meine Situation ist folgende:

Ich hatte eine Arbeitskopie eines reaktionsgenauen Projekts, das gut funktionierte. Hatte es für mein Git Repository festgelegt.

Ich entschied mich für ein reaktives Upgrade auf 0.26.3 und dann auf 0.28 und endete schließlich in einem großen Abhängigkeitsbereich mit Kollisionen. Also entschied ich mich zur vorherigen Arbeitsversion zurückzukehren. Die Änderungen wurden rückgängig gemacht. Ordner "node_modules" aus meinem Arbeitsverzeichnis entfernt. 

Aber jetzt funktioniert npm install einfach nicht. 

Meine Arbeitsabhängigkeiten in package.json

  "dependencies": {
    "immutable": "^3.8.1",
    "key-mirror": "^1.0.1",
    "react": "^15.0.2",
    "react-native": "^0.26.0",
    "react-native-router-flux": "^3.26.1",
    "react-redux": "^4.4.5",
    "redux": "^3.5.2",
    "redux-thunk": "^2.1.0",
    "strformat": "0.0.7"
  },
  "devDependencies": {
    "babel-core": "^6.10.4",
    "babel-jest": "^12.1.0",
    "babel-preset-es2015": "^6.9.0",
    "babel-preset-react-native": "^1.9.0",
    "babel-register": "^6.9.0",
    "chai": "^3.5.0",
    "fetch-mock": "^4.5.4",
    "jest-cli": "^12.1.1",
    "mocha": "^2.5.3",
    "mockery": "^1.7.0",
    "nock": "^8.0.0",
    "redux-mock-store": "^1.1.1",
    "sinon": "^1.17.4",
    "sinon-chai": "^2.8.0",
    "sinon-stub-promise": "^2.0.0"
  }

Jetzt bekomme ich

npm ERR! peerinvalid The package [email protected] does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer [email protected] wants [email protected]
npm ERR! peerinvalid Peer [email protected] wants [email protected]^0.14.0 || ^15.0.0-0

Das macht für mich einfach keinen Sinn, da meine Reaktionsabhängigkeit 15.0.2 und Reactative 0.26.0 ist, wie Sie in package.json sehen können.

Beachten Sie, dass dies von einem vorherigen Commit ist, das funktioniert hat (das ganze Los) . Ich habe auch einen npm ls ausgeführt. Seltsam falsche Abhängigkeiten werden in der Baumstruktur wie falsche Versionen von react-native, react-native-router-flux, react angezeigt.

Link zur Ausgabe von ls

Aktualisieren Sie Ihre react-Abhängigkeit in package.json, um explizit 15.0.2 und nicht ^15.0.2 zu sein, da sich letztere in 15.1.0 auflöst, was dieses Problem verursacht. Es wird empfohlen, es so zu belassen, bis Sie das nächste Mal ein Upgrade durchführen und diesen Fehler erneut erhalten (um zu vermeiden, dass react seine Version in der Zwischenzeit ändert und react-native nicht bereit ist).

Mit npm3 ist EPEERINVALID kein Fehler mehr, sondern eine Warnung.

7
Mike Grabowski

Für vorhandene Projekte, wenn Sie eine niedrigere Version installieren oder ein Downgrade durchführen möchten 

npm install [email protected]  ex: npm install [email protected]

Dadurch wird die angegebene Version installiert. 

Überprüfen Sie die installierte Version react-native -version

13
chetan

Versuchen Sie, npm Prune und dann erneut npm i.

Der Befehl npm Prune entfernt grundsätzlich alle unerwünschten Pakete, und npm i sorgt dafür, dass alle fehlenden Pakete installiert werden.

3
Rohit Shedage

Update 2018

Renn einfach 

npm install [email protected]

Ersetzen Sie 0.43.8 durch die Version, die Sie benötigen.

2
Saranjith

Das Downgrade von React Native erfordert manuelle Schritte. Ich empfehle die Verwendung von RN-DIFF-Repo https://github.com/ncuillery/rn-diff . Hier sind meine Schritte

  1. Suchen Sie in RN-DIFF nach der Version, für die Sie ein Downgrade durchführen möchten, klicken Sie auf die Vergleichsansicht, und aktualisieren Sie Ihre package.json so, dass react-native und react dieselbe Version in RN-DIFF => package.json haben. hier ist ein Beispiel
  2. Stellt alle in den Dateien vorgenommenen Änderungen wieder her, wie in den kleineren Aktualisierungen der RN-Diff-Vergleichsansicht angezeigt (Sie können die Patches ignorieren).
  3. Löschen Sie den node_modules-Ordner, löschen Sie den Watchman, setzen Sie den Metro-Cache zurück, löschen Sie die zwischengespeicherten ios-Dateien und die zwischengespeicherte Android-Datei.
  4. yarn install

Hinweis: Wenn Sie mehrere Nebenversionen herunterstufen. Zum Beispiel von 0.56.0 auf 0.54.4, dann sollten Sie jeweils eine Version herunterstufen. Führen Sie zunächst ein Downgrade auf Version 0.55.4 durch, testen Sie, ob es unter iOS und Android funktioniert, und fahren Sie dann mit der niedrigeren Version fort

1
Guy

Wenn Sie React-native verwenden, können Sie Ihre package.json-Datei mit den benötigten Versionen ändern und dann alle Knotenmodule rm -rf node_modules löschen und npm install erneut installieren 

0
David Vittori