我在我的XCode项目中运行了Pod Update
,现在我的项目没有编译,因为下载了重复的模块。有人知道任何解决方案吗?
Looking for JS files in
/Users/.../App/Finalv2
Metro Bundler ready.
Loading dependency graph...jest-haste-map: @providesModule naming collision:
Duplicate module name: react-native
Paths: /Users/.../App/Finalv2/node_modules/react-native/package.json collides with /Users/.../App/Finalv2/ios/Pods/React/package.json
This warning is caused by a @providesModule declaration with the same name across two different files.
Loading dependency graph, done.
更新
我删除了node_modules
文件夹和package.lock.json
并运行了npm install
,但问题仍然存在
修改
添加我的Package.json
{
"name": "sample-app",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"@expo/vector-icons": "^6.2.2",
"art": "^0.10.1",
"axios": "^0.17.1",
"expo": "^24.0.2",
"firebase": "^4.6.0",
"lodash": "^4.17.4",
"moment": "^2.19.3",
"native-base": "^2.3.3",
"prop-types": "^15.6.0",
"react": "^16.3.1",
"react-native": "^0.55.3",
"react-native-camera": "^0.10.0",
"react-native-circular-progress": "git+https://github.com/kk1429/react-native-circular-progress.git",
"react-native-countdown-circle": "^2.0.0",
"react-native-country-picker-modal": "^0.5.1",
"react-native-device-info": "^0.13.0",
"react-native-easy-grid": "^0.1.16",
"react-native-elements": "^0.18.5",
"react-native-fcm": "^11.2.0",
"react-native-fetch-blob": "^0.10.8",
"react-native-firebase": "^4.1.0",
"react-native-linear-gradient": "^2.4.0",
"react-native-linkedin": "^1.2.1",
"react-native-material-ui": "^1.19.0",
"react-native-navigation": "^1.1.471",
"react-native-progress": "^3.4.0",
"react-native-pull-refresh": "^1.0.0",
"react-native-rename": "^2.2.2",
"react-native-svg": "^5.4.2",
"react-native-svg-animated-linear-gradient": "^0.1.8",
"react-native-swiper": "^1.5.13",
"react-native-tag-input": "git+https://github.com/kk1429/react-native-tag-input.git",
"react-native-thumbnail-video": "0.0.8",
"react-native-vector-icons": "^4.4.2",
"react-native-video": "^2.0.0",
"react-navigation": "^1.0.0-beta.19",
"react-redux": "^5.0.6",
"react-save-refs": "^1.0.2",
"redux": "^3.7.2",
"redux-devtools-extension": "^2.13.2",
"redux-persist": "^5.3.4",
"redux-thunk": "^2.2.0",
"whatwg-fetch": "^2.0.3"
},
"devDependencies": {
"babel-jest": "22.1.0",
"babel-preset-react-native": "4.0.0",
"jest": "22.1.4",
"react-test-renderer": "16.2.0"
},
"jest": {
"preset": "react-native"
},
"rnpm": {
"assets": [
"./assets/fonts/"
]
}
}
更新
正在运行npm install
会产生一个奇怪的错误
> fsevents@1.2.4 install /Users/.../App/Finalv2/node_modules/fsevents
> node install
[fsevents] Success: "/Users/.../App/Finalv2/node_modules/fsevents/lib/binding/Release/node-v64-darwin-x64/fse.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile
> grpc@1.10.1 install /Users/kaaddevelopers/Documents/Clipme/App/Finalv2/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library
node-pre-gyp ERR! Tried to download(403): https://storage.googleapis.com/grpc-precompiled-binaries/node/grpc/v1.10.1/node-v64-darwin-x64-unknown.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for grpc@1.10.1 and node@10.1.0 (node-v64 ABI, unknown) (falling back to source compile with node-gyp)
答案 0 :(得分:100)
我只是花了一些时间寻找解决方案,终于找到了可行的方法!我没有使用Firebase,但是这里的讨论可以帮助您:https://github.com/invertase/react-native-firebase/issues/414您必须在Podfile中添加两行。
# Add these to your Podfile
pod 'React', :path => '../node_modules/react-native'
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
然后运行以下命令以确保您重新安装CocoaPods。
cd ios
rm -rf Pods
pod install
答案 1 :(得分:2)
尝试:
watchman watch-del-all
rm -fr $TMPDIR/react-*
erase jest-cache folder
rm -rf node_modules
npm install
npm cache clean && npm start -- --reset-cache
<强>更新强>
同时尝试download the latest node js并运行npm install -g npm
答案 2 :(得分:0)
删除“ Pod”文件夹中的“ React”文件夹
将此添加到您的pod文件中,位于最后一个end
之后的底部
post_install do |installer|
installer.pods_project.targets.each do |target|
# The following is needed to ensure the "archive" step works in XCode.
# It removes React & Yoga from the Pods project, as it is already included in the main project.
# Without this, you'd see errors when you archive like:
# "Multiple commands produce ... libReact.a"
# "Multiple commands produce ... libyoga.a"
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end
删除您的pod文件,然后转到
pod install
答案 3 :(得分:0)
在@Dehli的答案中,如果发生以下情况,可能会发生这种情况:
您已将react-native作为“ react-native”模块的“依赖项”
解决方案:将react-native移至package.json中的“ peerDependency”
您已移至peerDependency,并让应用程序的package-lock.json列表以本机形式作为对模块的依赖项
解决方案:删除应用程序中的package-lock.json,清理npm_modules文件夹,然后再次运行npm install
答案 4 :(得分:0)
就我而言,因为我是按Pod链接库的,所以它会自动对Pod做出反应。所以我更新了podfile:
target 'MyProject' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
rn_path = '../node_modules/react-native'
pod 'React', path: rn_path, subspecs: [
'Core',
'CxxBridge',
'DevSupport',
'RCTActionSheet',
'RCTAnimation',
'RCTGeolocation',
'RCTImage',
'RCTLinkingIOS',
'RCTNetwork',
'RCTSettings',
'RCTText',
'RCTVibration',
'RCTWebSocket',
]
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
//Another libraries here
pod 'RNImageTools', :path => '../node_modules/react-native-image-tools-wm'
post_install do |installer|
installer.pods_project.targets.each do |target|
# The following is needed to ensure the "archive" step works in XCode.
# It removes React & Yoga from the Pods project, as it is already included in the main project.
# Without this, you'd see errors when you archive like:
# "Multiple commands produce ... libReact.a"
# "Multiple commands produce ... libyoga.a"
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end
end
然后,我删除Pods
文件夹并运行pod install
。
好吧。
答案 5 :(得分:0)
此问题的根本原因是您的监视文件夹(包括 projectRoot)中有不止一个 react-native
模块的副本。