2020-03-30 TIL

2020-03-30

npx jetify

React Native 0.60부터 AndroidX가 적용되면서, AndroidX를 지원하지 않는 npm package, 정확히는 AndroidX를 지원하지 않는 Java 코드를 포함한 npm package를 이용하기 위해서는 이 Java 코드가 AndroidX를 지원하도록 변환해줘야 한다.

jetifier는 이러한 변환을 자동으로 수행해 주는 tool이며, npx jetify 는 이 tool을 실행하는 명령어다.

react-native 0.60 버전 이상 부터는 react-native-cli로 안드로이드 앱을 빌드할 경우 자동으로 이 과정이 수행되어 이와 관련된 컴파일 에러를 만날 일이 없다.

그러나 만약 스토어에 업로드 하기 위해 깨끗한 새 빌드를 만들 목적으로 작업하던 프로젝트에 rm -rf node_modules 명령을 치고, 새로이 npm install을 명령했다면! 이전에 RN cli로 인해 patch되었던 node_modules 안의 AndroidX 미지원 Java 코드들은 patch되지 않은 싱싱한 코드로 돌아가버린다.

이 때 ./gradlew bundleRelease 등의 과정으로 빌드를 수행하면 특정 npm package에서 dependency를 찾지 못해 컴파일 에러가 나는걸 볼 수 있다.

대놓고 AndroidX 같은 키워드를 에러메시지에 표현해주지 않기 때문에, 원인이 이것 때문임을 알기 위해서는 구글링이 필요할 수 있다.

참고: https://www.npmjs.com/package/jetifier


Minchang Kim
Minchang Kim
웹/앱 개발자 김민창입니다! 좋은 하루 되세요!