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

Używanie Hermesa

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 →

Hermes to otwartoźródłowy silnik JavaScript zoptymalizowany dla React Native. W przypadku wielu aplikacji użycie Hermesa przyniesie krótszy czas uruchamiania, mniejsze zużycie pamięci i zmniejszony rozmiar aplikacji w porównaniu z JavaScriptCore. Hermes jest domyślnie używany w React Native i nie wymaga dodatkowej konfiguracji do włączenia.

Hermes dołączony w pakiecie

React Native zawiera wersję dołączoną w pakiecie Hermesa. Przy każdej nowej wersji React Native budujemy dla Ciebie odpowiednią wersję Hermesa. Daje to pewność, że używasz wersji Hermesa w pełni kompatybilnej z użytą wersją React Native.

Ta zmiana jest całkowicie przezroczysta dla użytkowników React Native. Nadal możesz wyłączyć Hermesa za pomocą polecenia opisanego na tej stronie. Więcej o implementacji technicznej przeczytasz na tej stronie.

Sprawdzanie użycia Hermesa

Jeśli niedawno utworzyłeś nową aplikację od podstaw, możesz sprawdzić, czy Hermes jest włączony w widoku powitalnym:

Where to find JS engine status in the new project?

W JavaScript będzie dostępna globalna zmienna HermesInternal, której możesz użyć do weryfikacji, czy Hermes jest używany:

jsx
const isHermes = () => !!global.HermesInternal;
ostrzeżenie

Jeśli używasz niestandardowego sposobu ładowania pakietu JS, możliwe że zmienna HermesInternal będzie dostępna, ale nie będziesz używać wysoce zoptymalizowanego, wstępnie skompilowanego bajtkodu. Upewnij się, że używasz pliku .hbc oraz przeprowadź testy porównawcze przed i po zmianie zgodnie z instrukcjami poniżej.

Aby zobaczyć korzyści z Hermesa, wykonaj produkcyjny build/wdrożenie swojej aplikacji do porównania. Na przykład z głównego katalogu projektu:

shell
npm run android -- --mode="release"

Spowoduje to kompilację JavaScript do bajtkodu Hermesa podczas budowania, co przyspieszy uruchamianie aplikacji na urządzeniu.

Powrót do JavaScriptCore

React Native obsługuje również JavaScriptCore jako silnik JavaScript. Postępuj zgodnie z poniższymi instrukcjami, aby zrezygnować z Hermesa.

Android

Edytuj plik android/gradle.properties i zmień wartość hermesEnabled z powrotem na false:

diff
# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=false

iOS

Edytuj plik ios/Podfile i wprowadź zmianę pokazaną poniżej:

diff
   use_react_native!(
:path => config[:reactNativePath],
+ :hermes_enabled => false,
# An absolute path to your application root.
:app_path => "#{Pod::Config.instance.installation_root}/.."
)