Transpile deprecjacja w RoomOS
list-menuOpinia?
Zaktualizowaliśmy nasz silnik JavaScript, aby używać QuickJS, który służy jako nowoczesny, zaktualizowany środowisko wykonawcze JavaScript dla systemów wbudowanych. W ramach tego ruchu planujemy teraz usunąć obsługę transpilacji JavaScript na naszej platformie.

Zmiany w kodzie JavaScript w makrach RooMOS

Zaktualizowaliśmy maszyny obsługujące makra na RoomOS, a w wyniku tych aktualizacji niektóre konwencje i funkcje JavaScript nie będą już dostępne dla makr. W szczególności funkcje związane z CommonJS nie są już dostępne. Niektóre typowe przykłady kodu wymagającego przepisywania to:

  1. require(), w tym:
    • require('xapi')- wymaga przepisania do standardowego EC importMAScript. Np. const xapi = require('xapi')zmieniono na import xapi from 'xapi'
    • require.main
  2. module, w tym:
    • module.exports- wymaga przepisania do standardowego ECMAScript export
    • module.name- należy zastąpić _main_module_name()

Jak to jest włączane i wyłączane?

Zmiany te wchodzą w życie xConfiguration Macros EvaluateTranspiledpo przełączeniu z Truedo False. To ustawienie jest obecne od dłuższego czasu, a zmiana jest wprowadzana poprzez zmianę wartości domyślnej w nowych wersjach z Truedo False.

Jeśli makra pękną przy tej zmianie, jawne ustawienie przełącznika wstecz (xConfiguration Macros EvaluateTranspiled: True) jest krótkoterminową poprawką, która sprawi, że będą działać tak jak poprzednio. Należy jednak pamiętać, że jest to tylko rozwiązanie tymczasowe: Ten przełącznik zniknie po okresie przejściowym.

Podobnie, w starszych wersjach RooMOS zmianę tę można przetestować bez aktualizacji, ustawiając przełącznik na. False

Uwaga: Jeśli makro zostanie zapisane na urządzeniu, gdy jest przełącznik, Falsea później zdecydujesz się przywrócić przełącznik True, może być konieczne ponowne zapisanie tych makr w edytorze makr.

Kiedy te zmiany wejdą w życie?

Domyślna wartość EvaluateTranspiledprzełącznika została zmieniona na począwszy Falseod RooMOS maja 2025 r. (11.28), co oznacza, że urządzenia domyślnie przełączają się po aktualizacji. W tej samej wersji krok transpilacji podczas zapisywania makr za pomocą XAPI jest domyślnie wyłączony. Jeśli transpiracja jest wymagana przez XAPI, opcja polecenia transpile musi być wyraźnie ustawiona na true.

Począwszy od RooMOS lipca 2025 r. (11.30), diagnostyka będzie wyświetlana po ustawieniu przełącznika. True Nadal będzie działać jak poprzednio.

Idąc do przodu przełącznik zostanie całkowicie usunięty, a urządzenie będzie zachowywać się tak, jakby było ustawione na False. Naszym celem jest wprowadzenie tej zmiany w RooMOS listopada 2026 r. (27.0).

Wszyscy klienci, którzy pomimo naszych wszelkich starań, aby powiadomić i informować o zmianach, widzą, że ich makra zawodzą, gdy zmiany są na stałe wprowadzane w RoomOS, mogą nadal korzystać z (do) 6-miesięcznej opóźnionej aktualizacji oprogramowania dostarczanej przez Control Hub dla urządzeń zarejestrowanych w chmurze, aby opóźnić zmianę.

Dlaczego jest to konieczne? Szczegóły techniczne

Głównym czynnikiem dla tej zmiany jest zaktualizowanie naszego silnika JavaScript do korzystania z QuickJS, który służy jako nowoczesny, zaktualizowany środowisko wykonawcze JavaScript dla systemów wbudowanych. Następnie, ponieważ nie jest już potrzebny w nowoczesnym silniku JavaScript, teraz usuwamy obsługę transpilacji JavaScript. Usunięcie dodatkowego etapu usuwania całego kodu skraca czas ładowania podczas wdrażania i wykonywania kodu, a także zmniejsza złożoność platformy.

Przełącznik silnika JavaScript jest sterowany przez xConfiguration Macros QuickJSEngine: Offzmieniony na On. Ta zmiana została wprowadzona w RooMOS grudnia 2023 r. (11.11) i planujemy usunąć ten przełącznik konfiguracji na tej samej osi czasu co. EvaluateTranspiled

Wprowadzamy te zmiany, aby zapewnić maksymalną wydajność RoomOS i abyśmy mogli pomóc Ci skalować wdrażanie rozszerzeń JavaScript w wydajny i bezpieczny sposób.

Przeczytaj więcej o makrach na roomos.cisco.com.

Czy ten artykuł był pomocny?
Czy ten artykuł był pomocny?