Ich habe ein Problem, wenn ich npm install
zur Installation von redux
in meinem react-native
-Projekt verwenden möchte. Bei jedem Ausführen von npm install redux --save
wird das react-native
-Verzeichnis in node_modules
gelöscht.
Dann verwende ich rm -rf node_modules && npm install
das alles react-native
-Paket wird nicht in node_modules
installiert, daher muss ich das Projekt neu erstellen.
Ich versuche auch, & react-redux
und redux
in node_modules
aus einem anderen Projekt in mein aktuelles react-native
-Projekt zu kopieren. Aber es kann nicht erfolgreich sein, der Fehler führte mich zum issue auf github. Ich bin dieser Hilfe gefolgt und sie scheitert auch.
Einige andere Informationen:
Npm: 5.0.3
-Reag-native-cli: 2.0.1
➜ reaktionsnativ: 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"
}
}
Jeder Vorschlag wird geschätzt. Vielen Dank
Ich bin froh, dass Sie dieses Problem mit einer Problemumgehung gelöst haben. Erlauben Sie mir jedoch zu erläutern, warum das reaktionsinterne Modul beim Ausführen von npm install redux --save
entfernt wurde.
Lösung:
rm -rf node_modules && npm install
ausführennpm install redux
(npm v5 wird standardmäßig --save) aus, um redux zu installieren, ohne dass vorhandene Module entfernt werdenWas ist package-lock.json?
Es gibt eine Reihe von Änderungen für npm v5, die Sie hier lesen können hier . Eine davon generiert package-lock.json (lockfile), wenn npm/node_modules oder package.json ändert.
Mit package-lock.json erhält jeder, der npm install
(v5) ausführt, genau die gleiche node_modules-Struktur, in der Sie entwickelt haben. Sie müssten also auch diese Datei festschreiben.
Warum wurden reaktives Modul und andere entfernt, nachdem npm install somePackageName
ausgeführt wurde, obwohl sie in package.json definiert sind?
Die Entfernung erfolgte, weil Ihre vorhandenen Knotenmodule vor npm v5 installiert wurden. Wenn Sie mit npm v5 ein Modul installieren (z. B. npm install redux
), werden Sie drei Dinge bemerken:
Durch erneutes Ausführen von rm -rf node_modules && npm install
wird das Problem aufgrund der Datei package-lock.json nicht behoben (Denken Sie daran, dass nur redux und seine Abhängigkeiten in der Datei gespeichert wurden. Sie können die alte package-lock.json überprüfen.)
Hoffe, das könnte jemand anderem helfen.
Zum Schluss habe ich dieses Problem in zwei Schritten gelöst:
1) Erstellen Sie ein Reaktjs-Projekt und installieren Sie redux
2) Kopieren Sie den gesamten Inhalt von node_modules
in Schritt 1 und fügen Sie ihn in mein aktuelles react-native
-Projekt ein.
App neu laden Alles funktioniert gut.