inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

React Native with Expo: 제로초에게 제대로 배우기

이미지 선택하기, 촬영하기, 저장하기

새로운 모듈 설치시 모듈 없음.

114

main

작성한 질문수 2

0

expo-location 때부터 모듈을 설치를 해도 해당 모듈이 없다는 메시지가 뜹니다.

eas build --platform android --profile development 명령어로 새로 빌드하면 되긴 하는데,


모듈 하나 설치할 때마다 빌드하면 5분씩 넘게 걸리는데 다른 방법이 있을까요?


아니면 제가 놓치고 있는게 있을까요?

react react-native 하이브리드-앱 typescript expo

답변 3

1

eggmun(문성진)

https://docs.expo.dev/workflow/overview/

expo 개발 프로세스가 많이 복잡한데요(개발 방식이 많습니다 ㅠㅠ)
위에 expo 공식문서에서 development loop 부분을 보시면은
네이티브 라이브러리 설치 시 eas build를 진행해야 된다고 나와있어요!
위에 개발 프로세스 부분을 잘 참고하시면 expo 공부하는 데 도움이 되실 거예요

0

main

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

헷갈리네요 ㅠㅠ

1

eggmun(문성진)

expo에서 expo-로 시작하는 라이브러리들이 공식 라이브러리이긴 하지만, 모든 라이브러리가 '빌드 없이 바로 사용 가능한' 것은 아닙니다.
expo 공식 라이브러리도 크게 두 가지로 나뉩니다.

1. 빌드 없이 expo Go에서 바로 쓸 수 있는 라이브러리

  • 네이티브 코드를 직접 건드리지 않은, JS로만 구현된 패키지들이 여기에 해당해요.

     

  • Expo Go 앱에서 별도 빌드 없이 바로 사용 가능합니다.

2. 네이티브 모듈이 포함된 라이브러리

  • expo-location, expo-camera, expo-notifications 등은 네이티브 코드(안드로이드/아이폰의 고유 기능)를 사용해요.

  • 이런 라이브러리는 Expo Go에서 바로 사용이 안 되고, eas build을 통해 네이티브 코드가 포함된 앱을 만들어야 제대로 동작합니다.

구분 방법

공식 문서에서 아래와 같은 안내가 있으면 거의 네이티브 모듈이 필요한 라이브러리라고 보면 돼요

  • app.jsonplugins 설정 추가 안내

  • AndroidManifest.xml 또는 Info.plist 등 네이티브 설정 파일에 대한 수정 안내

  • pod install(iOS) 같은 용어가 나온 경우

     

1

main

와.. 이런 차이군요!
답변 정말 너무 감사드립니다!
구분방법까지.. 안그래도 너무 답답했는데
깔끔하게 해소가 되었어요!

0

제로초(조현영)

정확히 에러메시지가 뭔가요? 설치 후 node_modules 안에 들어 있나요?

0

main

image.png

아래는 해당 에러 메시지이고, 위에는 node_modules 안에 있는 스크린샷입니다.

ERROR Error: Cannot find native module 'ExponentImagePicker', js engine: hermes

 

아래 스크린샷은 모듈 내부에서 빨간줄 뜨는 부분입니다.

image.png

 

AI 인턴님이 해주신 방법과, Hermes 비활성화 등 여러방법도 해보았습니다.

 

1

제로초(조현영)

일단 빌드 매번 하셔야 하는게 맞습니다. 네이티브단 라이브러리라서요. 다만 eas로 하면 제한도 있고 오래 걸리므로 로컬 빌드를 시도해보시면 좋습니다 —local 뒤에 붙이시면 됩니다.

0

main

네! 답변 감사합니다 : )

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. main님.

프로젝트에 새로운 모듈을 설치했을 때, 해당 모듈이 없다는 오류 메시지가 표시되는 것은 또는 빌드를 통해서 모듈 설치 상태를 반영해야 하는 경우, 몇 가지 체크해볼 사항들이 있습니다.

  1. 캐시 제거 및 클린 빌드:

    • 모듈 설치 후 eas build로 새로 빌드하면 시간이 오래 걸리는 것을 줄이기 위해, node_modulesyarn.lock 또는 package-lock.json 파일을 삭제한 후 npm install 또는 yarn 명령어를 사용해 재설치를 시도해 보세요.
    • 필요한 경우 npm cache clean --force 명령어로 캐시를 정리한 후 다시 시도할 수 있습니다.
  2. expo start -c:

    • 새로 설치한 모듈을 바로 반영하기 위해 expo start -c 또는 npm start -- -c 명령어를 통해 캐시를 비우고 애플리케이션을 다시 시작하는 방법도 효과적일 수 있습니다.
  3. 낮은 wsl 통합:

    • 개발 환경이 Windows일 경우, WSL(Windows Subsystem for Linux)을 사용해 빌드를 수행하는 것 역시 하나의 방법입니다. WSL을 통해 Linux 환경에서 개발 프로젝트를 관리하면, 종종 모듈 관련 문제를 해결할 수 있습니다.
  4. 모듈 설치 확인:

    • npm ls expo-location 명령어를 통해 모듈이 의존성 트리에 존재하는지, 설치된 버전이 올바른지 확인해볼 수 있습니다. 잘못된 버전이 설치된 경우 해당 모듈을 명확하게 언급하여 재설치할 수 있습니다.

이 외에도 유사한 문제를 해결하는 과정에서 도움이 되는 질문을 참고해 보실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

expo-blur 사용하면서 생긴 버그입니다.

0

113

3

router.navigate 동작이 달라졌을까요?

0

64

1

Toast 기능

0

76

2

onEndReached 함수가 바로 호출 되지 않는 이슈

1

63

1

expo push service에 관한 질문

0

79

2

ios에서 개발중이신 분들은

1

85

1

[질문아님] tabBarLabel 대신 tabBarShowLabel

1

58

1

Location.getCurrentPositionAsync({}); 에러

1

125

3

.

0

122

2

EAS preview 빌드 후 Device에서 카카오 로그인 브라우저가 안켜짐

0

120

2

폴더 구조 관련 질문

0

133

2

혹시 리액트네이티브 관련해서 좋은 참고서도 있을까요??

0

105

1

제로초님께서는 Nativewind는 사용안하지는지 궁금합니다.

1

272

2

.

0

89

2

eas build:configure 안되는데, "git"이 반드시 설치되어 있어야 하나요?

0

81

2

.

0

104

2

혹시 해당 강의 보면서 테스트용으로 사용할 맥북을 구매할 예정인데 어느정도 스펙 이상으로 사야 할지 의견 받아볼수있을까요?

0

73

2

.

0

114

1

.

0

120

2

기기에서는 네트워크 에러가 납니다.

0

101

2

빌드 문의드립니다.

0

73

1

.

0

126

2

.

0

83

2

Expo-blur unimplement 오류

0

106

3