尝试使用 npm install
将 redux
安装到我的 react-native
项目时遇到问题。任何时候我运行 npm install redux --save
--- --- node_modules
react-native
中的目录都会被清除。
然后我使用 rm -rf node_modules && npm install
全部 react-native
包没有安装在里面 node_modules
所以我必须重新创建项目。
我还尝试将 react-redux
和 redux
中的 node_modules
从另一个项目复制到我当前的项目 react-native
但它不能成功,错误导致我在 github 上 遇到问题。我遵循了这个帮助,它也失败了。
其他一些信息:
➜ npm:5.0.3
➜ 反应原生 cli:2.0.1
➜ 反应原生:0.45.0
➜ 包.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"
}
}
任何建议表示赞赏。谢谢
原文由 Robust 发布,翻译遵循 CC BY-SA 4.0 许可协议
很高兴您使用解决方法解决了这个问题,但请允许我解释一下为什么在您运行
npm install redux --save
时删除了 react-native 模块。解决方案:
rm -rf node_modules && npm install
npm install redux
(默认情况下,npm v5 将 –save)安装 redux 而不删除现有模块什么是 package-lock.json?
npm v5 有很多更改,您可以 在此处 阅读。其中之一是每当 npm 修改 /node_modules 或 package.json 时生成 package-lock.json (lockfile)。
使用 package-lock.json,运行
npm install
(v5) 的任何人都将获得与您正在开发的完全相同的 node_modules 树。因此,您也必须提交此文件。为什么 react-native 模块和其他模块在运行
npm install somePackageName
后被删除,即使它们是在 package.json 中定义的?删除是因为您现有的节点模块是在 npm v5 之前安装的。如果您使用 npm v5 安装模块(例如
npm install redux
),您会注意到三件事:因此,再次运行
rm -rf node_modules && npm install
不会解决问题,因为 package-lock.json 文件(还记得只有 redux 及其依赖项被保存到文件中吗?你可以检查旧的 package-lock.json)希望这可能对其他人有所帮助。