尝试使用npm install
将redux
安装到我的react-native
项目时遇到问题。每次运行npm install redux --save
react-native
内的node_modules
目录都将被清除。
然后我使用rm -rf node_modules && npm install
所有react-native
包未安装在node_modules
内,所以我必须重新创建项目。
我也试着复制&从另一个项目到我当前的react-redux
项目的redux
中的node_modules
和react-native
过去了。但它不能成功,错误将我带到github上的issue。我听了这个帮助,也失败了。
其他一些信息:
➜npm:5.0.3
➜alid-native-cli:2.0.1
➜反应原生: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"
}
}
任何建议表示赞赏。谢谢
答案 0 :(得分:9)
很高兴您使用解决方法解决了这个问题,但请允许我解释为什么在您运行.screen-width{
min-height: 768px !important;
min-width: 1366px !important;
}
时删除了react-native模块。
<强>解决方案:强>
npm install redux --save
rm -rf node_modules && npm install
(npm v5将默认设置为 - )以安装redux而不删除现有模块什么是package-lock.json?
npm v5有很多变化,你可以读它here。其中一个是在npm修改/ node_modules或package.json时生成package-lock.json(lockfile)。
使用package-lock.json,运行npm install redux
(v5)的任何人都将获得与您正在开发的完全相同的node_modules树。所以,你也必须提交这个文件。
为什么反应原生模块和其他模块在运行npm install
后被删除,即使它们是在package.json中定义的?
由于您在npm v5之前安装了现有节点模块,因此删除了。如果您使用npm v5安装模块(例如npm install somePackageName
),您会注意到三件事:
因此,再次运行npm install redux
将无法解决问题,因为package-lock.json文件(请记住只有redux及其依赖项已保存到文件中?您可以检查旧的package-lock.json)
希望这可能有助于其他人。
答案 1 :(得分:0)
最后,我通过两个步骤解决了这个问题:
1)创建reactjs项目并安装redux
2)在步骤1中复制node_modules
的所有内容并粘贴到我当前的react-native
项目中。
重新加载应用。一切都运作良好。
答案 2 :(得分:0)
如果使用yarn创建应用程序,它将被删除。如果您是使用yarn创建的应用程序,请运行yarn add react-redux而不是npm install react-redux