Ma situation est la suivante:
J'ai eu une copie de travail d'un projet natif de réaction qui fonctionnait bien. Avait-il commis sur mon référentiel git.
J'ai décidé de mettre à niveau les versions natives de react-native à 0.26.3, puis à 0.28, pour finalement aboutir à un gros désordre de dépendance avec des collisions. Alors décidé de revenir à la version de travail précédente. Retourné les changements. Le dossier node_modules a été supprimé de mon répertoire de travail.
Mais maintenant, npm install
ne fonctionne tout simplement pas.
Mes dépendances de travail dans 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"
}
Maintenant je reçois
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
Cela n'a tout simplement aucun sens pour moi, car ma dépendance à réagir est de 15.0.2 et de réactif 0.26.0, comme vous pouvez le constater dans package.json.
Notez que cela provient d'un commit précédent qui fonctionnait (le tout) . J'ai aussi fait un npm ls
. Des dépendances étrangement incorrectes sont affichées dans l'arborescence, comme des versions incorrectes de react-native
, react-native-router-flux
, react
.
Veuillez mettre à jour votre dépendance react
dans package.json pour qu'elle soit explicitement 15.0.2
, et non pas ^15.0.2
car ce dernier a été résolu en 15.1.0
, ce qui est à l'origine de ce problème. Il est recommandé de le laisser ainsi jusqu'à la prochaine mise à niveau et avoir à nouveau cette erreur (pour éviter que react
ne change de version entre-temps et que react-native
ne soit pas prêt pour cela).
De plus, avec npm3 EPEERINVALID
n'est plus une erreur, mais un avertissement.
Pour les projets existants, si vous souhaitez installer/rétrograder à une version inférieure
npm install [email protected] ex: npm install [email protected]
Cela installera la version spécifiée.
Vérifiez la version installée react-native -version
Essayez npm Prune
puis npm i
à nouveau.
La commande npm Prune
supprimera fondamentalement tous les packages indésirables et npm i
s'assurera que tous les packages manquants sont installés.
Juste courir
npm install [email protected]
Remplacez 0.43.8
par la version dont vous avez besoin.
Le déclassement de React Native nécessite des étapes manuelles. Je recommande d'utiliser RN-DIFF repo https://github.com/ncuillery/rn-diff . voici mes pas
react-native
et react
correspondent à la même version dans RN-DIFF => package.json. voici un exempleyarn install
Remarque: Si vous rétrogradez plusieurs versions mineures. Par exemple, de 0.56.0 à 0.54.4, vous devez rétrograder une version à la fois. Passez tout d'abord à la version 0.55.4, vérifiez que cela fonctionne sous iOS et Android, puis passez à la version inférieure.
Si vous utilisez react-native, vous pouvez modifier votre fichier package.json avec les versions dont vous avez besoin, puis supprimer tous vos modules de noeud rm -rf node_modules, puis réinstaller npm