EAS build로 development client를 만들려고 했는데 로컬에서는 발생하지 않던 Multiple versions of Reanimated were detected
에러가 발생했다.
해결 방법:
npm why react-native-reanimated
로 무슨 버전들이 충돌하는지 알 수 있다. expo-router
등 내부 디펜던시로 사용되는 react-native-reanimated
가 무슨 이유에선지 최신 버전으로 다운로드 되는데 expo doctor
가 추천하는 react-native-reanimated
의 버전은 최신은 아니기 때문이다.
아래와 같이 overrides
(npm, pnpm, bun)나 resolutions
(yarn, bun) 필드를 작성해 주면 된다.
package.json
이나 npm why react-native-reanimated
를 이용해서 무슨 버전이 사용되고 있는지 확인한다.package.json
의 overrides
(혹은 resolutions
)에 "react-native-reanimated": "<버전>"
을 추가한다."overrides": {
"react-native-reanimated": <Reanimated version>
}
npm why react-native-reanimated
로 버전이 override된 것을 확인한다. (peerOptional overridden
등)$ npm why react-native-reanimated
react-native-reanimated@3.3.0 overridden
node_modules/react-native-reanimated
react-native-reanimated@"~3.3.0" from the root project
peerOptional overridden react-native-reanimated@"~3.3.0" (was "*") from expo-router@2.0.12
node_modules/expo-router
expo-router@"^2.0.0" from the root project
peer overridden react-native-reanimated@"~3.3.0" (was ">= 1.0.0") from @react-navigation/drawer@6.6.6
node_modules/@react-navigation/drawer
peerOptional @react-navigation/drawer@"^6.5.8" from expo-router@2.0.12
node_modules/expo-router
expo-router@"^2.0.0" from the root project