Przejdź do treści głównej
Wersja: 0.77

Narzędzie wiersza poleceń Codegen

Nieoficjalne Tłumaczenie Beta

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:

sh
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.json z bieżącego katalogu roboczego i wygeneruj kod na podstawie jego konfiguracji codegenConfig.
shell
npx @react-native-community/cli codegen
  • Odczytaj package.json z bieżącego katalogu roboczego i wygeneruj kod dla iOS w lokalizacji zdefiniowanej w codegenConfig.
shell
npx @react-native-community/cli codegen --platform ios
  • Odczytaj package.json z third-party/some-library i wygeneruj kod dla Androida w third-party/some-library/android/generated.
shell
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ść includesGeneratedCode do pola codegenConfig w pliku package.json Twojej biblioteki. Ustaw jej wartość na true.

  • 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 cmakeListsPath w react-native.config.js, aby Gradle szukał pliku CMakeLists w Twoim outputDir zamiast w katalogu budowania.