react-native 0.72 - TypeError: 0, _$$_REQUIRE(_dependencyMap)

HYUNGU, KANG·2023년 6월 23일
1

Metro bundler 에서 변경사항이 생겼는지 0.72 버전에서 모듈 관련 이슈가 생겼다.

RN 에서 패키지의 자바스크립트 코드가 아닌 typescript source 에서 코드를 읽어오는 경우
(ex: node_modules/package_name/src/index.ts)

해당 ts 파일에서 try/catch 로 모듈 fallback 을 시도하고있으면

// "ts-source-package-1/index.ts"
import { useSomeHook } from "ts-source-package-2";

let FlatList;

try {
  FlatList = require('@sendbird/react-native-scrollview-enhancer').FlatList;
} catch {
  FlatList = require('react-native').FlatList;
}

const Component = () => {
  const data = useSomeHook();
  return <FlatList data={data} />
}

해당 파일에서 named import 하고 있는 다른 typescript source 를 참조하는 패키지들이 정상적으로 import 를 하지 못하는 이슈가 있다.

TypeError: 0, _$$_REQUIRE(_dependencyMap[5](...)ts-source-package-2").useSomeHook is not a function (it is undefined)

별도의 단일 파일로 module fallback 을 옮기면 정상적으로 처리가 된다. 🤔

profile
JavaScript, TypeScript and React-Native

0개의 댓글