코드 생성 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.js
의cmakeListsPath
를 업데이트하여 Gradle이 빌드 디렉토리가 아닌outputDir
에서 CMakeLists 파일을 찾도록 한다.