【发布时间】:2017-10-04 15:39:12
【问题描述】:
所以我想使用 npm 安装一个依赖项 react-native-router-flux,但由于与 react 和 react-native 的兼容版本,它无法正常工作,它破坏了我的项目应用程序。所以我从package.json 文件中删除了它。
尝试通过以下方式删除它:
npm uninstall --save react-native-router-flux
甚至尝试从 package.json 文件中手动删除它,但由于某种原因,现在看来我的整个项目都因此而损坏。
现在每当我做npm start
这是在我的终端中显示的内容:
error: bundling: Error: ENOENT: no such file or directory, open '/Users/marian-mac/Documents/dev/example/myapp/node_modules/react-native-router-flux/node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicator.js'
at Error (native)
at Object.fs.openSync (fs.js:634:18)
at Object.fs.readFileSync (fs.js:502:33)
at Module._readSourceCode (/Users/marian-mac/Documents/dev/example/myapp/node_modules/react-native/packager/src/node-haste/Module.js:200:29)
at Module._getCacheProps (/Users/marian-mac/Documents/dev/example/myapp/node_modules/react-native/packager/src/node-haste/Module.js:420:29)
at Module._readFromTransformCache (/Users/marian-mac/Documents/dev/example/myapp/node_modules/react-native/packager/src/node-haste/Module.js:376:29)
at Module.readCached (/Users/marian-mac/Documents/dev/example/myapp/node_modules/react-native/packager/src/node-haste/Module.js:363:25)
at Promise.resolve.then (/Users/marian-mac/Documents/dev/example/myapp/node_modules/react-native/packager/src/node-haste/DependencyGraph/ResolutionRequest.js:167:29)
at process._tickCallback (internal/process/next_tick.js:103:7)
Bundling `index.ios.js` 94.0% (2941/3033)
我尝试了 rm -rf /node_modules 100 次和 npm install 又 100 次,这一直失败和失败,我不明白在哪里试图访问该文件!如果它被删除!
这是我的 package.json 现在:
{
"name": "myapp",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"moment": "^2.18.1",
"native-base": "^2.1.3",
"react": "16.0.0-alpha.6",
"react-native": "0.44.0",
"react-native-flags": "^1.0.0"
},
"devDependencies": {
"babel-jest": "19.0.0",
"babel-preset-react-native": "1.9.1",
"jest": "19.0.2",
"react-test-renderer": "16.0.0-alpha.6"
},
"jest": {
"preset": "react-native"
}
}
还会针对版本和其他内容抛出警告:
npm WARN native-base-shoutem-theme@0.1.3 requires a peer of react@>=15.1.0 but none was installed.
npm WARN @shoutem/animation@0.8.10 requires a peer of react@^15.0.0 but none was installed.
npm WARN react-static-container@1.0.1 requires a peer of react@^0.13.0 || ^0.14.0 || ^15.0.0 but none was installed.
这是针对本地基础依赖项引发的:
UNMET PEER DEPENDENCY react@^0.13.0 || ^0.14.0 || ^15.0.0
谁能帮帮我?这让我发疯,现在已经为此“战斗”了几个小时,但我无法继续使用我的应用程序。
提前致谢。
编辑:
在为 react、react-native 和 native-base 更改了一些版本之后。仍然有警告,并且看起来打包程序正在尝试访问 react-native-route-flux 中的 react-native 文件。
1) 这是我当前的 package.json
{
"name": "myapp",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"moment": "^2.18.1",
"native-base": "^2.1.3",
"react": "16.0.0-alpha.3",
"react-native": "^0.43.0",
"react-native-flags": "^1.0.0"
},
"devDependencies": {
"babel-jest": "19.0.0",
"babel-preset-react-native": "1.9.1",
"jest": "19.0.2",
"react-test-renderer": "16.0.0-alpha.6"
},
"jest": {
"preset": "react-native"
}
}
2) 这些是警告:
npm WARN react-native@0.43.4 requires a peer of react@16.0.0-alpha.6 but none was installed.
npm WARN native-base-shoutem-theme@0.1.3 requires a peer of react@>=15.1.0 but none was installed.
npm WARN @shoutem/animation@0.8.10 requires a peer of react@^15.0.0 but none was installed.
npm WARN react-static-container@1.0.1 requires a peer of react@^0.13.0 || ^0.14.0 || ^15.0.0 but none was installed.
npm WARN react-test-renderer@16.0.0-alpha.6 requires a peer of react@^16.0.0-alpha.6 but none was installed.
还会在原生基础上引发一些 UNMET PEER DEPENDENCY:
├─┬ native-base@2.1.3
│ ├─┬ @shoutem/animation@0.8.10
│ │ ├── hoist-non-react-statics@1.2.0
│ │ └── lodash@4.17.4
│ ├── blueimp-md5@2.7.0
│ ├── clamp@1.0.1
│ ├─┬ color@0.11.4
│ │ ├── clone@1.0.2
│ │ ├─┬ color-convert@1.9.0
│ │ │ └── color-name@1.1.2
│ │ └── color-string@0.3.0
│ ├─┬ fs-extra@2.1.2
│ │ └── jsonfile@2.4.0
│ ├── lodash@4.11.2
│ ├── native-base-shoutem-theme@0.1.3
│ ├── print-message@2.1.0
│ ├── UNMET PEER DEPENDENCY react@^15.0.0
│ ├── react-native-drawer@2.3.0
│ ├── react-native-easy-grid@0.1.7
│ ├── react-native-keyboard-aware-scroll-view@0.2.7
│ ├─┬ react-native-scrollable-tab-view@0.7.4
│ │ ├── UNMET PEER DEPENDENCY react@^0.13.0 || ^0.14.0 || ^15.0.0
│ │ └── react-static-container@1.0.1
│ ├── react-native-vector-icons@4.0.1
│ ├─┬ react-tween-state@0.1.5
│ │ └─┬ raf@3.3.2
│ │ └── performance-now@2.1.0
│ └── tween-functions@1.2.0
├─┬ UNMET PEER DEPENDENCY react@16.0.0-alpha.3
并且在控制台中运行时,从 XCode 中在模拟器中抛出红屏错误:
No Dimension set for key window
根据他的 github,看起来是 known issue。但是该死的,我不再想要 react-native-router-flux,我什至在我的 package.json 中都没有它,也没有安装它,仍然会造成麻烦,这种依赖是一种病毒。
【问题讨论】:
标签: ios node.js reactjs react-native