web-dev-qa-db-ja.com

反応ネイティブをダウングレードする適切なメカニズム

私の状況はこれです:

うまく機能している反応ネイティブのプロジェクトの作業コピーがありました。私のgitリポジトリにコミットしていました。

私は、react-nativeを0.26.3にアップグレードしてから0.28にアップグレードすることを決定し、最終的に衝突を伴う大きな依存関係の混乱に陥りました。そこで、以前の作業バージョンに戻ることにしました。変更を元に戻しました。作業ディレクトリからnode_modulesフォルダーを削除しました。

しかし、今ではnpm installは機能しません。

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"
  }

今私は得る

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

Package.jsonでわかるように、react依存関係は15.0.2およびreact-native 0.26.0であるため、これは理にかなっていません。

これは、機能していた以前のコミット(全体)からのものであることに注意してください。私もnpm lsをしました。 react-nativereact-native-router-fluxreactの間違ったバージョンのように、奇妙な間違った依存関係がツリーに表示されます。

ls出力へのリンク

Package.jsonのreact依存関係を15.0.2ではなく^15.0.2に明示的に更新してください。後者はこの問題の原因となる15.1.0に解決されるためです。次回アップグレードするまでそのままにしておき、このエラーをもう一度取得することをお勧めします(その間にreactがバージョンを変更し、react-nativeが準備できなくなるのを避けるため)。

また、npm3ではEPEERINVALIDはエラーではなく警告になります。

8
Mike Grabowski

既存のプロジェクトの場合、より低いバージョンにインストール/ダウングレードする場合

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

これにより、指定されたバージョンがインストールされます。

インストールされているバージョンを確認するreact-native -version

18
chetan

更新2018

ただ走れ

npm install [email protected]

置換0.43.8必要なバージョン。

5
Saranjith

npm Prune その後 npm iもう一度。

コマンド npm Pruneは基本的に不要なパッケージをすべて削除し、npm iは、不足しているすべてのパッケージがインストールされていることを確認します。

3
Rohit Shedage

ダウングレードReact Nativeには手動の手順が必要です。RN-DIFFリポジトリを使用することをお勧めします https://github.com/ncuillery/rn-diff

  1. ダウングレードするバージョンをRN-DIFFで見つけ、比較ビューをクリックしてからpackage.jsonを更新してreact-nativeおよびreactは、RN-DIFF => package.jsonの同じバージョンに一致します。 ここに例があります
  2. RN-Diff比較ビューのマイナーアップデートに表示されるファイルに加えられたすべての変更を元に戻します(パッチは無視できます)
  3. Node_modulesフォルダーを削除し、ウォッチマンをクリアし、メトロキャッシュをリセットし、iosキャッシュファイルをクリアし、Androidキャッシュファイル。
  4. yarn install

注:複数のマイナーバージョンをダウングレードする場合。たとえば、0.56.0から0.54.4に、一度に1つのバージョンをダウングレードする必要があります。まずバージョン0.55.4にダウングレードし、iOSで動作することをテストして、Androidを実行してから、下位バージョンにダウングレードします

1
Guy

React-nativeを使用している場合、package.jsonファイルを必要なバージョンに変更してから、すべてのノードモジュールrm -rf node_modulesを削除してから、npm installを再インストールできます。

0
David Vittori