Skip to main content

코드 생성 CLI

Gradle을 호출하거나 수동으로 스크립트를 실행하는 것은 기억하기 어렵고 복잡한 과정이 필요하다. 이를 단순화하기 위해, 이러한 작업을 실행할 수 있는 CLI 도구를 만들었다: 바로 Codegen CLI다. 이 커맨드는 프로젝트를 위해 @react-native/codegen을 실행한다. 다음은 사용 가능한 옵션들이다:

sh
npx @react-native-community/cli codegen --help
Usage: rnc-cli codegen [options]

Options:
--verbose 로깅의 상세 정도를 높인다
--path <path> React Native 프로젝트 루트의 경로. (기본값: "/Users/MyUsername/projects/my-app")
--platform <string> 타겟 플랫폼. 지원되는 값: "android", "ios", "all". (기본값: "all")
--outputPath <path> 생성된 아티팩트가 출력될 경로.
-h, --help 커맨드에 대한 도움말을 표시한다

예제

  • 현재 작업 디렉터리에서 package.json을 읽고, codegenConfig를 기반으로 코드를 생성한다.
shell
npx @react-native-community/cli codegen
  • 현재 작업 디렉터리에서 package.json을 읽고, codegenConfig에 정의된 위치에 iOS 코드를 생성한다.
shell
npx @react-native-community/cli codegen --platform ios
  • third-party/some-library 디렉터리에서 package.json을 읽고, third-party/some-library/android/generated에 Android 코드를 생성한다.
shell
npx @react-native-community/cli codegen \
--path third-party/some-library \
--platform android \
--outputPath third-party/some-library/android/generated

라이브러리에 생성된 코드 포함하기

Codegen CLI는 라이브러리 개발자에게 유용한 도구다. 이 도구를 사용해 생성된 코드를 확인하고 구현해야 할 인터페이스를 미리 살펴볼 수 있다. 또한 라이브러리에 포함할 코드를 직접 생성할 수도 있다.

이 설정에는 다음과 같은 장점이 있다:

  • 앱에서 Codegen을 실행할 필요 없이, 생성된 코드가 항상 준비되어 있다.
  • 구현 파일이 생성된 인터페이스와 항상 일치한다.
  • Android에서 두 아키텍처를 모두 지원하기 위해 두 세트의 파일을 포함할 필요가 없다. New Architecture 파일만 유지해도 이전 버전과 호환된다.
  • 앱에서 사용하는 Codegen 버전과 라이브러리 개발 중 사용한 버전이 달라 발생하는 문제를 걱정할 필요가 없다.
  • 모든 네이티브 코드가 포함되어 있으므로, 라이브러리의 네이티브 부분을 사전 빌드로 제공할 수 있다.

이 설정을 활성화하려면 다음 단계를 따르면 된다:

  • 라이브러리의 package.json 파일에 있는 codegenConfig 필드에 includesGeneratedCode 속성을 추가하고 값을 true로 설정한다.
  • Codegen CLI를 사용해 로컬에서 Codegen을 실행한다.
  • package.json을 업데이트하여 생성된 코드를 포함한다.
  • podspec을 업데이트하여 생성된 코드를 포함한다.
  • build.Gradle 파일을 업데이트하여 생성된 코드를 포함한다.
  • react-native.config.jscmakeListsPath를 업데이트하여 Gradle이 빌드 디렉토리가 아닌 outputDir에서 CMakeLists 파일을 찾도록 한다.