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