Je rencontre un problème lorsque j'essaie d'utiliser npm install
pour installer redux
dans mon projet react-native
. Chaque fois que je lance npm install redux --save
, le répertoire react-native
à l'intérieur de node_modules
sera effacé.
Ensuite, j'utilise rm -rf node_modules && npm install
. Le package tout react-native
ne s'installe pas à l'intérieur de node_modules
. Je dois donc recréer le projet.
J'essaie également de copier et coller les react-redux
et redux
dans node_modules
d'un autre projet dans mon projet react-native
actuel. Mais cela ne peut pas réussir, l'erreur m'a conduit à issue sur github. J'ai suivi cette aide et elle a également échoué.
Quelques autres informations:
Pm npm: 5.0.3
➜ react-native-cli: 2.0.1
➜ réagit natif: 0.45.0
➜ package.json
{
"name": "MyProjectNAME",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"react": "16.0.0-alpha.12",
"react-native": "0.45.0",
"react-redux": "^5.0.5",
"redux": "^3.6.0"
},
"devDependencies": {
"babel-cli": "^6.24.1",
"babel-jest": "20.0.3",
"babel-preset-es2015": "^6.24.1",
"babel-preset-es2017": "^6.24.1",
"babel-preset-react-native": "1.9.2",
"jest": "20.0.4",
"react-test-renderer": "16.0.0-alpha.12"
},
"jest": {
"preset": "react-native"
}
}
Toute suggestion est appréciée. Je vous remercie
Je suis content que vous ayez résolu ce problème en utilisant une solution de contournement, mais permettez-moi d'expliquer pourquoi le module react-native a été supprimé de l'exécution de npm install redux --save
.
Solution:
rm -rf node_modules && npm install
npm install redux
(npm v5 sera --save par défaut) pour installer redux sans que les modules existants soient supprimésQu'est-ce que package-lock.json?
Il y a beaucoup de changements pour npm v5 que vous pouvez lire ici . L'un d'eux est de générer package-lock.json (lockfile) chaque fois que npm modifie/node_modules ou package.json.
Avec package-lock.json, toute personne exécutant npm install
(v5) obtiendra exactement la même arborescence node_modules que celle que vous avez développée. Donc, vous devez aussi valider ce fichier.
Pourquoi le module react-native et les autres ont-ils été supprimés après l'exécution de npm install somePackageName
, même s'ils sont définis dans le package.json?
La suppression s’est produite parce que vos modules de nœud existants ont été installés avant npm v5. Si vous utilisez npm v5 pour installer un module (par exemple, npm install redux
), vous remarquerez trois choses:
Donc, relancer rm -rf node_modules && npm install
ne résoudra pas le problème à cause du fichier package-lock.json (N'oubliez pas que seuls les fichiers redux et leurs dépendances ont été enregistrés dans le fichier? Vous pouvez vérifier l'ancien package-lock.json)
J'espère que cela pourrait aider quelqu'un d'autre.
Enfin, j'ai résolu ce problème en 2 étapes:
1) Créer un projet reactjs et installer redux
2) Copiez tout le contenu de node_modules
à l'étape 1 et collez-le dans mon projet react-native
actuel.
Recharger l'application. Tout fonctionne bien.