Codegen CLI
调用 Gradle 或手动调用脚本可能难以记住,并且需要很多仪式。
为了简化它,我们创建了一个可以帮助您运行这些任务的 CLI 工具:Codegen cli。此命令为您的项目运行 react-native-codegen。以下选项可用
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
示例
- 读取当前工作目录中的
package.json
,根据其 codegenConfig 生成代码。
npx @react-native-codegen/cli codegen
- 读取当前工作目录中的
package.json
,在 codegenConfig 中定义的位置生成 iOS 代码。
npx @react-native-codegen/cli codegen --platform ios
- 读取
third-party/some-library
中的package.json
,在third-party/some-library/android/generated
中生成 Android 代码。
npx @react-native-codegen/cli codegen \
--path third-party/some-library \
--platform android \
--outputPath third-party/some-library/android/generated
将生成的代码包含到库中
Codegen CLI 是库开发者的一款很棒的工具。它可以用来查看生成的代码,以了解您需要实现哪些接口。或者,如果您想将其包含在您的库中,您可以生成代码。
此设置具有以下几个优点
- 无需依赖应用为您运行 Codegen,生成的代码始终存在。
- 实现文件始终与生成的接口一致。
- 无需包含两套文件来同时支持 Android 上的两种架构。您只需保留新架构的那一个,并保证向后兼容。
- 无需担心应用使用的 Codegen 版本与库开发期间使用的版本不匹配。
- 由于所有原生代码都存在,因此可以将库的原生部分作为预构建版本发布。
要启用此设置
- 在
package.json
文件中库的codegenConfig
字段中添加includesGeneratedCode
属性。将其值设置为true
。 - 使用 codegen CLI 在本地运行 Codegen。
- 更新您的
package.json
以包含生成的代码。 - 更新您的
podspec
以包含生成的代码。 - 更新您的
build.Gradle
文件以包含生成的代码。 - 更新
react-native.config.js
中的cmakeListsPath
,以便 Gradle 不在构建目录中查找 CMakeLists 文件,而是查找您的 outputDir。