La CLI de Codegen
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Invocar Gradle o ejecutar manualmente un script puede ser difícil de recordar y requiere mucha ceremonia.
Para simplificarlo, creamos una herramienta CLI que te ayuda a ejecutar esas tareas: la CLI de Codegen. Este comando ejecuta @react-native/codegen para tu proyecto. Las siguientes opciones están disponibles:
npx @react-native-community/cli codegen --help
Usage: rnc-cli codegen [options]
Options:
--verbose Increase logging verbosity
--path <path> Path to the React Native project root. (default: "/Users/MyUsername/projects/my-app")
--platform <string> Target platform. Supported values: "android", "ios", "all". (default: "all")
--outputPath <path> Path where generated artifacts will be output to.
-h, --help display help for command
Ejemplos
- Leer
package.jsondesde el directorio de trabajo actual y generar código basado en su codegenConfig.
npx @react-native-community/cli codegen
- Leer
package.jsondesde el directorio de trabajo actual y generar código iOS en la ubicación definida en codegenConfig.
npx @react-native-community/cli codegen --platform ios
- Leer
package.jsondesdethird-party/some-libraryy generar código Android enthird-party/some-library/android/generated.
npx @react-native-community/cli codegen \
--path third-party/some-library \
--platform android \
--outputPath third-party/some-library/android/generated
Inclusión de código generado en bibliotecas
La CLI de Codegen es una excelente herramienta para desarrolladores de bibliotecas. Permite echar un vistazo al código generado para ver qué interfaces necesitas implementar.
Normalmente, el código generado no se incluye en la biblioteca, y la aplicación que la utiliza es responsable de ejecutar Codegen durante el tiempo de compilación.
Esta configuración funciona bien en la mayoría de casos, pero Codegen también ofrece un mecanismo para incluir el código generado en la propia biblioteca mediante la propiedad includesGeneratedCode.
Es importante comprender las implicaciones de usar includesGeneratedCode = true. Incluir el código generado ofrece varios beneficios:
-
No necesitas depender de que la aplicación ejecute Codegen por ti: el código generado siempre está disponible.
-
Los archivos de implementación siempre son consistentes con las interfaces generadas (esto hace tu código de biblioteca más resistente a cambios de API en codegen).
-
No necesitas incluir dos conjuntos de archivos para admitir ambas arquitecturas en Android. Puedes mantener solo el de Nueva Arquitectura, garantizando compatibilidad con versiones anteriores.
-
Al tener todo el código nativo disponible, es posible distribuir la parte nativa de la biblioteca como precompilado.
Por otro lado, debes considerar una desventaja:
- El código generado usará la versión de React Native definida en tu biblioteca. Si tu biblioteca usa React Native 0.76, el código se basará en esa versión. Esto podría causar incompatibilidad con aplicaciones que usen versiones anteriores de React Native (ej: una app con React Native 0.75).
Habilitación de includesGeneratedCode
Para habilitar esta configuración:
-
Añade la propiedad
includesGeneratedCodeen el campocodegenConfigde tupackage.json. Establece su valor entrue. -
Ejecuta Codegen localmente con la CLI de codegen.
-
Actualiza tu
package.jsonpara incluir el código generado. -
Actualiza tu
podspecpara incluir el código generado. -
Actualiza tu archivo
build.Gradlepara incluir el código generado. -
Actualiza
cmakeListsPathenreact-native.config.jspara que Gradle busque el archivo CMakeLists en tu outputDir en lugar del directorio de compilación.