인프런 커뮤니티 질문&답변
새로운 모듈 설치시 모듈 없음.
작성
·
71
0
expo-location  때부터 모듈을 설치를 해도 해당 모듈이 없다는 메시지가 뜹니다.
eas build --platform android --profile development 명령어로 새로 빌드하면 되긴 하는데,
모듈 하나 설치할 때마다 빌드하면 5분씩 넘게 걸리는데 다른 방법이 있을까요?
아니면 제가 놓치고 있는게 있을까요?
답변 3
1
https://docs.expo.dev/workflow/overview/
expo 개발 프로세스가 많이 복잡한데요(개발 방식이 많습니다 ㅠㅠ)
위에 expo 공식문서에서 development loop 부분을 보시면은
네이티브 라이브러리 설치 시 eas build를 진행해야 된다고 나와있어요!
위에 개발 프로세스 부분을 잘 참고하시면 expo 공부하는 데 도움이 되실 거예요
expo에서 expo-로 시작하는 라이브러리들이 공식 라이브러리이긴 하지만, 모든 라이브러리가 '빌드 없이 바로 사용 가능한' 것은 아닙니다.
expo 공식 라이브러리도 크게 두 가지로 나뉩니다.
1. 빌드 없이 expo Go에서 바로 쓸 수 있는 라이브러리
네이티브 코드를 직접 건드리지 않은, JS로만 구현된 패키지들이 여기에 해당해요.
Expo Go 앱에서 별도 빌드 없이 바로 사용 가능합니다.
2. 네이티브 모듈이 포함된 라이브러리
expo-location,expo-camera,expo-notifications등은 네이티브 코드(안드로이드/아이폰의 고유 기능)를 사용해요.이런 라이브러리는 Expo Go에서 바로 사용이 안 되고, eas build을 통해 네이티브 코드가 포함된 앱을 만들어야 제대로 동작합니다.
구분 방법
공식 문서에서 아래와 같은 안내가 있으면 거의 네이티브 모듈이 필요한 라이브러리라고 보면 돼요
app.json의plugins설정 추가 안내AndroidManifest.xml또는Info.plist등 네이티브 설정 파일에 대한 수정 안내pod install(iOS) 같은 용어가 나온 경우
0
아래는 해당 에러 메시지이고, 위에는 node_modules 안에 있는 스크린샷입니다.
ERROR Error: Cannot find native module 'ExponentImagePicker', js engine: hermes
아래 스크린샷은 모듈 내부에서 빨간줄 뜨는 부분입니다.

AI 인턴님이 해주신 방법과, Hermes 비활성화 등 여러방법도 해보았습니다.
일단 빌드 매번 하셔야 하는게 맞습니다. 네이티브단 라이브러리라서요. 다만 eas로 하면 제한도 있고 오래 걸리므로 로컬 빌드를 시도해보시면 좋습니다 —local 뒤에 붙이시면 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다. main님.
프로젝트에 새로운 모듈을 설치했을 때, 해당 모듈이 없다는 오류 메시지가 표시되는 것은 또는 빌드를 통해서 모듈 설치 상태를 반영해야 하는 경우, 몇 가지 체크해볼 사항들이 있습니다.
캐시 제거 및 클린 빌드:
- 모듈 설치 후 
eas build로 새로 빌드하면 시간이 오래 걸리는 것을 줄이기 위해,node_modules와yarn.lock또는package-lock.json파일을 삭제한 후npm install또는yarn명령어를 사용해 재설치를 시도해 보세요.
 - 필요한 경우 
npm cache clean --force명령어로 캐시를 정리한 후 다시 시도할 수 있습니다.
 
- 모듈 설치 후 
 expo start -c:
- 새로 설치한 모듈을 바로 반영하기 위해 
expo start -c또는npm start -- -c명령어를 통해 캐시를 비우고 애플리케이션을 다시 시작하는 방법도 효과적일 수 있습니다.
 
- 새로 설치한 모듈을 바로 반영하기 위해 
 낮은 wsl 통합:
- 개발 환경이 Windows일 경우, WSL(Windows Subsystem for Linux)을 사용해 빌드를 수행하는 것 역시 하나의 방법입니다. WSL을 통해 Linux 환경에서 개발 프로젝트를 관리하면, 종종 모듈 관련 문제를 해결할 수 있습니다.
 
- 개발 환경이 Windows일 경우, WSL(Windows Subsystem for Linux)을 사용해 빌드를 수행하는 것 역시 하나의 방법입니다. WSL을 통해 Linux 환경에서 개발 프로젝트를 관리하면, 종종 모듈 관련 문제를 해결할 수 있습니다.
 모듈 설치 확인:
npm ls expo-location명령어를 통해 모듈이 의존성 트리에 존재하는지, 설치된 버전이 올바른지 확인해볼 수 있습니다. 잘못된 버전이 설치된 경우 해당 모듈을 명확하게 언급하여 재설치할 수 있습니다.
이 외에도 유사한 문제를 해결하는 과정에서 도움이 되는 질문을 참고해 보실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





expo에서 공식으로 지원하는 라이브러리는 따로 빌드가 필요없다고 들었는데, 라이브러리 앞에 expo가 붙어있는건, 공식지원 한다는 뜻이 아닌가요? ㅠㅠ
expo-location도 결국에 다시 빌드해서 오류가 고쳐졌는데, expo-location도 네이티브 라이브러리 인가요?
헷갈리네요 ㅠㅠ