Skip to main content
Version: Next

코드 생성 CLI

Gradle을 호출하거나 스크립트를 수동으로 실행하는 것은 기억하기 어렵고 복잡한 과정이 필요할 수 있다.

이를 단순화하기 위해, 이런 작업을 쉽게 실행할 수 있도록 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 파일을 찾도록 한다.