私の状況はこれです:
うまく機能している反応ネイティブのプロジェクトの作業コピーがありました。私の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 react@^0.14.0 || ^15.0.0-0
Package.jsonでわかるように、react依存関係は15.0.2およびreact-native 0.26.0であるため、これは理にかなっていません。
これは、機能していた以前のコミット(全体)からのものであることに注意してください。私もnpm ls
をしました。 react-native
、react-native-router-flux
、react
の間違ったバージョンのように、奇妙な間違った依存関係がツリーに表示されます。
Package.jsonのreact
依存関係を15.0.2
ではなく^15.0.2
に明示的に更新してください。後者はこの問題の原因となる15.1.0
に解決されるためです。次回アップグレードするまでそのままにしておき、このエラーをもう一度取得することをお勧めします(その間にreact
がバージョンを変更し、react-native
が準備できなくなるのを避けるため)。
また、npm3ではEPEERINVALID
はエラーではなく警告になります。
既存のプロジェクトの場合、より低いバージョンにインストール/ダウングレードする場合
npm install [email protected] ex: npm install [email protected]
これにより、指定されたバージョンがインストールされます。
インストールされているバージョンを確認するreact-native -version
npm Prune
その後 npm i
もう一度。
コマンド npm Prune
は基本的に不要なパッケージをすべて削除し、npm i
は、不足しているすべてのパッケージがインストールされていることを確認します。
ダウングレードReact Nativeには手動の手順が必要です。RN-DIFFリポジトリを使用することをお勧めします https://github.com/ncuillery/rn-diff 。
react-native
およびreact
は、RN-DIFF => package.jsonの同じバージョンに一致します。 ここに例がありますyarn install
注:複数のマイナーバージョンをダウングレードする場合。たとえば、0.56.0から0.54.4に、一度に1つのバージョンをダウングレードする必要があります。まずバージョン0.55.4にダウングレードし、iOSで動作することをテストして、Androidを実行してから、下位バージョンにダウングレードします
React-nativeを使用している場合、package.jsonファイルを必要なバージョンに変更してから、すべてのノードモジュールrm -rf node_modulesを削除してから、npm installを再インストールできます。