inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Expo Router 사용 시 query-string.stringify is not a function 오류가 발생하는 이유와 대응 방법 문의드립니다

198

Aiden Park

작성한 질문수 1

3

안녕하세요 제로초님 강의 잘 보고 있습니다.

카카오 로그인을 구현하는 중에 문제가 생겨 어찌해서 해결했는데 해결된 이유가 궁금해서 질문드립니다!

 

1. 에러로그

image.pngimage.png

TypeError: queryString.stringify is not a function 이라는 에러가 나서 찾아보니 query-string 버전 충돌이 있는 것 같아 query-string을 @7.1.3 버전으로 설치하니 해결이 되었습니다.

 

2. 사용하고 있는 패키지들

1) @react-native-kakao/core

@react-native-kakao/core@2.4.0(expo@53.0.10(@babel/core@7.27.4)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.4)(@types/react@19.0.14)(react@19.0.0)))(react-native-webview@13.13.5(react-native@0.79.2(@babel/core@7.27.4)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.4)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.4)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)':
    dependencies:
      crypto-js: 4.2.0
      query-string: 9.2.0
      react: 19.0.0

2) @react-navigation

  '@react-navigation/core@7.10.0(react@19.0.0)':
    dependencies:
      '@react-navigation/routers': 7.4.0
      escape-string-regexp: 4.0.0
      nanoid: 3.3.11
      query-string: 7.1.3

 

위의 에러로그에서와 같이 tab layout에 접근하려 할 때 react-navigation의 getPathFromState.js에서 query-string의 import에서 문제가 발생하는 것 같았는데 정확히 어떤 문제인지 잘 모르겠네요..

 

lockfile과 node_modules를 삭제해도 동일하게 query-string은 두가지 버전으로 설치되었고 만약 package.json에 query-string을 7버전으로 명시적으로 설치하지 않으면 탭 레이아웃의 모든 페이지들에서 저 오류가 납니다.

일단 query-string 패키지 설치를 해서 오류를 해결하긴 했지만 정확한 이유를 모르겠어서 질문드립니다 !

 

아래는 GPT에게 질문시 답변한 내용입니다.

GPT 답변 내용

 

질문드리고 싶은 점

  1. 이러한 충돌을 예방하기 위한 공식적인 방법은 무엇인가요? (예: pnpm.overrides로 강제 버전 고정)

  2. 혹시 다른 라이브러리에서도 이와 같은 ESM-CJS 충돌을 방지하기 위한 일반적인 best practice가 있을까요?

    // package.json

"dependencies": {
    "@expo/vector-icons": "^14.1.0",
    "@react-native-async-storage/async-storage": "2.1.2",
    "@react-native-kakao/core": "^2.4.0",
    "@react-native-kakao/user": "^2.4.0",
    "@react-navigation/bottom-tabs": "^7.3.10",
    "@react-navigation/elements": "^2.3.8",
    "@react-navigation/native": "^7.1.6",
    "@rneui/themed": "4.0.0-rc.8",
    "@supabase/supabase-js": "^2.49.9",
    "expo": "~53.0.9",
    "expo-blur": "~14.1.4",
    "expo-build-properties": "~0.14.6",
    "expo-constants": "~17.1.6",
    "expo-dev-client": "~5.1.8",
    "expo-font": "~13.3.1",
    "expo-haptics": "~14.1.4",
    "expo-image": "~2.1.7",
    "expo-linking": "~7.1.5",
    "expo-router": "~5.0.6",
    "expo-splash-screen": "~0.30.8",
    "expo-status-bar": "~2.2.3",
    "expo-symbols": "~0.4.4",
    "expo-system-ui": "~5.0.7",
    "expo-web-browser": "~14.1.6",
    "query-string": "^7.1.3",
    "react": "19.0.0",
    "react-dom": "19.0.0",
    "react-native": "0.79.2",
    "react-native-gesture-handler": "~2.24.0",
    "react-native-reanimated": "~3.17.4",
    "react-native-safe-area-context": "5.4.0",
    "react-native-screens": "~4.11.1",
    "react-native-url-polyfill": "^2.0.0",
    "react-native-web": "~0.20.0",
    "react-native-webview": "13.13.5",
    "zustand": "^5.0.5"
  },

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

답변 1

1

제로초(조현영)

직접적으로 query-string을 import해서 쓰신 건 아니시죠?

아니라면 원래 에러가 나는 게 조금 희한한 상황이긴 합니다. react-native-kakao는 query-string 9버전을 쓰고 react-navigation은 7버전을 써서 서로 관련이 없어야 하는데요. react-navigation이 갑자기 query-string 9버전을 참고하게 된 것 같습니다.

0

Aiden Park

네 직접 query-string을 쓰고 있지는 않은 상황입니다!

1

제로초(조현영)

비슷한 이슈 찾아보니 일단 overrides 같은 걸로 고정해야 하는 것 같습니다 ㅠㅠ

0

Aiden Park

turborepo를 사용하고 있고 node-linker=hoisted로 루트에서 모든 의존성을 관리하고 있어서 생기는 문제일까요..

0

Aiden Park

네 일단 그렇게 사용해야할 것 같습니다!

1

제로초(조현영)

turborepo, node-linker=hoisted 없이 해서 비교해봐야할 것 같습니다

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