해당 오류는 Yarn 4 (Berry) + PnP(Plug’n’Play) 환경에서 React Native CLI 패키지를 제대로 인식하지 못하는 전형적인 상황입니다.
즉, react-native가 “@react-native-community/cli가 필요하다”라고 계속 말하지만, 실제로는 이미 설치가 되어 있음에도 PnP 링크 방식 때문에 제대로 연결되지 않는 경우가 대부분입니다.
아래 순서대로 해결 방법을 시도해 보세요.
1. .yarnrc.yml에서 nodeLinker: node-modules로 변경 (가장 확실한 방법)
Yarn v2 이상(일명 Berry)부터는 기본적으로 **PnP(Plug’n’Play)**를 사용하게 설정될 수 있는데,
React Native는 아직 PnP와 완벽하게 호환되지 않습니다.
그러므로 node_modules 방식을 사용하도록 설정을 바꿔야 합니다.
- 프로젝트 루트에 있는 .yarnrc.yml 파일을 열어, 아래처럼 설정 추가 또는 수정:
nodeLinker: node-modules
- 설정 후, 다음 명령어로 남아있는 캐시/설정 등을 싹 정리:
rm -rf .yarn/cache .pnp.* yarn.lock node_modules yarn install
- 마지막으로 다시 실행:
npx react-native run-android
참고: .yarnrc.yml 파일이 없을 수도 있으므로, 직접 만들어서 nodeLinker: node-modules를 추가해 주시면 됩니다.
2. (대안) Yarn “Classic”으로 다운그레이드
만약 Yarn Berry의 PnP 설정을 유지하고 싶지 않거나, 설정이 복잡하다면 Yarn Classic(1.x) 버전으로 바꿔서 쓰는 방법도 있습니다.
- 기존 Yarn Berry를 제거하고,
npm uninstall -g yarn
- Yarn Classic 설치
npm install -g yarn@1.22.19
- 프로젝트 루트에서 lock 파일 제거 후 다시 설치 그리고 실행
rm -rf yarn.lock node_modules yarn
npx react-native run-android
3. 혹시나 해서 다시 한 번 확인할 사항
- @react-native-community/cli가 devDependencies에 정확히 들어 있는지 확인
- React Native 버전(현재 0.76.6)과 CLI 버전이 호환되지 않는 경우는 드뭅니다만, 혹시 모를 버전 문제를 피하려면 @react-native-community/cli를 ^10.x나 ^11.x처럼 명시적으로 지정해 볼 수도 있습니다.
- Windows 환경에서 Node 버전 >= 18, Java SDK, Android SDK 등이 정상 설치되어 있어야 합니다.
마무리
결론적으로, 가장 확실한 해결책은 Yarn Berry의 PnP를 끄고 node_modules 방식으로 변경하는 것입니다.
.yarnrc.yml에 nodeLinker: node-modules 설정을 추가한 뒤, .pnp.*, .yarn/cache, yarn.lock, node_modules를 싹 지우고 yarn install을 다시 해 보세요.
이 과정을 거치면 @react-native-community/cli 관련 경고 없이 **npx react-native run-android**가 정상적으로 동작할 것입니다.
'리액트 > 리액트네이티브' 카테고리의 다른 글
[ReactNative] 실습 중 포트 중복 발생 오류 해결 방법 - in Window (0) | 2025.01.29 |
---|