Narzędzie wiersza poleceń Codegen
Ta strona została przetłumaczona przez PageTurner AI (beta). Nie jest oficjalnie zatwierdzona przez projekt. Znalazłeś błąd? Zgłoś problem →
Wywoływanie Gradle lub ręczne uruchamianie skryptu może być trudne do zapamiętania i wymaga wielu formalności.
Aby to uprościć, stworzyliśmy narzędzie CLI, które pomaga w wykonywaniu tych zadań: Codegen. To polecenie uruchamia @react-native/codegen dla Twojego projektu. Dostępne są następujące opcje:
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
Przykłady
- Odczytaj
package.jsonz bieżącego katalogu roboczego i wygeneruj kod na podstawie jego konfiguracji codegenConfig.
npx @react-native-community/cli codegen
- Odczytaj
package.jsonz bieżącego katalogu roboczego i wygeneruj kod dla iOS w lokalizacji zdefiniowanej w codegenConfig.
npx @react-native-community/cli codegen --platform ios
- Odczytaj
package.jsonzthird-party/some-libraryi wygeneruj kod dla Androida wthird-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
Dołączanie wygenerowanego kodu do bibliotek
Codegen CLI to doskonałe narzędzie dla twórców bibliotek. Pozwala podejrzeć wygenerowany kod i sprawdzić, które interfejsy trzeba zaimplementować.
Zwykle wygenerowany kod nie jest dołączany do biblioteki - aplikacja korzystająca z biblioteki odpowiada za uruchomienie Codegen podczas budowania.
To dobre rozwiązanie w większości przypadków, ale Codegen oferuje też mechanizm dołączania wygenerowanego kodu bezpośrednio do biblioteki poprzez właściwość includesGeneratedCode.
Ważne jest zrozumienie konsekwencji użycia includesGeneratedCode = true. Dołączenie wygenerowanego kodu przynosi kilka korzyści:
-
Brak konieczności polegania na aplikacji do uruchomienia Codegen - wygenerowany kod jest zawsze dostępny.
-
Pliki implementacyjne są zawsze zgodne z wygenerowanymi interfejsami (co zwiększa odporność kodu biblioteki na zmiany API w codegen).
-
Brak konieczności dołączania dwóch zestawów plików do obsługi obu architektur na Androidzie. Możesz zachować tylko pliki dla Nowej Architektury, które są gwarantowane jako wstecznie kompatybilne.
-
Ponieważ cały kod natywny jest dostępny, możliwe jest dostarczenie natywnej części biblioteki jako prebuildu.
Z drugiej strony, należy mieć świadomość jednej wady:
- Wygenerowany kod będzie używał wersji React Native zdefiniowanej w bibliotece. Jeśli biblioteka korzysta z React Native 0.76, kod będzie oparty na tej wersji. Może to oznaczać brak kompatybilności z aplikacjami używającymi starszych wersji React Native (np. aplikacja działająca na React Native 0.75).
Włączanie includesGeneratedCode
Aby włączyć tę konfigurację:
-
Dodaj właściwość
includesGeneratedCodedo polacodegenConfigw plikupackage.jsonTwojej biblioteki. Ustaw jej wartość natrue. -
Uruchom Codegen lokalnie za pomocą CLI Codegen.
-
Zaktualizuj swój
package.json, aby dołączyć wygenerowany kod. -
Zaktualizuj swój
podspec, aby dołączyć wygenerowany kod. -
Zaktualizuj swój plik
build.Gradle, aby dołączyć wygenerowany kod. -
Zaktualizuj
cmakeListsPathwreact-native.config.js, aby Gradle szukał pliku CMakeLists w Twoim outputDir zamiast w katalogu budowania.