Как я могу предотвратить ответную нативную информацию об устройстве, вызывающую неоднозначность React в моей настройке?
У меня проблема с установкой react-native-device-info
в существующий реактивный проект (созданный с использованием create-react-native-app
а потом выталкиваешь)
Я бегу:
yarn add react-native-device-info
yarn install
react-native link react-native-device-info
cd ios && pod install & cd ..
pod install устанавливает RNDeviceInfo
, но также React
как зависимость?
Тогда я бегу yarn ios
как обычно.
MetroBundler не работает с:
`` `Это предупреждение вызвано объявлением @providesModule с одинаковым именем в двух разных файлах. Загрузка графа зависимостей, сделано. ошибка: сбой связывания: неоднозначное разрешение: модуль /Users/thomasclarke/dev/mobile-notifications-native/index.js
пытается потребовать react-native
, но есть несколько файлов, обеспечивающих этот модуль. Вы можете удалить или исправить их:
/Users/thomasclarke/dev/mobile-notifications-native/ios/Pods/React/package.json
/Users/thomasclarke/dev/mobile-notifications-native/node_modules/react-native/package.json
`` `
Я поднял сообщение об ошибке, так как это явно неприемлемое поведение, но могу ли я обойти это с моей настройкой?
1 ответ
Оказывается, вы можете ссылаться на реактив-нативный в ваших node_modules, что обеспечивает необходимую зависимость. Это не было сделано по умолчанию в существующем проекте, поэтому вот процесс:
1) Начните с "чистого" (например, без react-native-device-info
поведение). Перебравшись перед этим, я также обнаружил, что должен был очистить оба моих node_modules
и мой ios/Pods
каталоги для очистки устаревшего пакета React.
2) Обновите свой Podfile, чтобы связать его с React (вам также нужно будет добавить любые соответствующие подспецификации и отдельный модуль для Yoga)
Вот строки, которые нужно добавить в ваш подфайл:
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'DevSupport',
'Core',
'RCTAnimation',
'RCTImage',
'RCTLinkingIOS',
'RCTSettings',
'RCTText'
]
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
3) Тогда беги react-native link react-native-device-info
Это добавит ответную нативную информацию об устройстве в ваш Podfile (вместе с настройкой Android)
pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'
4) Установите все как обычно:
yarn install
cd ios
pod install
И теперь у вас должна быть работающая сборка!