Zastaralé používání transpile na RoomOS
list-menuZpětná vazba?
Aktualizovali jsme náš JavaScript engine tak, aby používal QuickJS, který slouží jako moderní, aktualizovaný běhový modul JavaScriptu pro vestavěné systémy. V rámci tohoto kroku nyní plánujeme odstranit podporu pro transpilaci JavaScriptu na naší platformě.

Změny kódu JavaScriptu v makrech RoomOS

Aktualizovali jsme stroj spouštějící makra na RoomOS, a v důsledku těchto aktualizací již nebudou pro makra k dispozici některé konvence a funkce JavaScriptu. Zejména funkce související s CommonJS již nejsou k dispozici. Některé běžné příklady kódu vyžadujícího přepisování jsou:

  1. require(), včetně:
    • require('xapi')- potřebuje přepsat na standardní EC importMAScript. Např., const xapi = require('xapi')změněno na import xapi from 'xapi'
    • require.main
  2. module, včetně:
    • module.exports- potřebuje přepsat na standardní ECMAScript export
    • module.name- by měl být nahrazen _main_module_name()

Jak se to zapne a vypne?

Tyto změny se projeví po xConfiguration Macros EvaluateTranspiledpřepnutí z Truena False. Toto nastavení existuje již dlouhou dobu a změna je zavedena změnou výchozí hodnoty v nových verzích z Truena False.

Pokud se makra při této změně přeruší, explicitní nastavení přepínače zpět (xConfiguration Macros EvaluateTranspiled: True) je krátkodobá oprava, aby fungovala jako dříve. Všimněte si, nicméně, že se jedná pouze o dočasné řešení: Tento přepí nač zmizí po přechodném období.

Podobně, na starších verzích RoomOS lze tuto změnu otestovat bez upgradu nastavením přepínače na False.

Poznámka: Pokud je makro uloženo v zařízení, zatímco je přepí nač aktivní, Falsea později se rozhodnete přepínač přepnout zpět na True, může být nutné tyto makra znovu uložit v editoru makra.

Kdy tyto změny vstoupí v platnost?

Výchozí hodnota EvaluateTranspiledpřepínače byla změněna na FalseRoomOS květen 2025 (11.28), což znamená, že zařízení se při upgradu ve výchozím nastavení přepnou. Ve stejné verzi je ve výchozím nastavení vypnutý krok transpilace při ukládání makra přes XAPI. Pokud je transpilace vyžadována prostřednictvím XAPI, musí být volba příkazu transpile explicitně nastavena na true.

Počínaje RoomOS červencem 2025 (11.30) se při nastavení přepínače zobrazí diagnostika. True Bude to fungovat stejně jako předtím.

Vpřed bude přepínač zcela odstraněn a zařízení se bude chovat, jako by bylo nastaveno na False. Naším cílem je zavést tuto změnu v RoomOS listopad 2026 (27.0).

Všichni zákazníci, kteří navzdory našemu nejlepšímu úsilí při pokusu o upozornění a informování o změnách zjistí, že jejich makra selhávají, když jsou změny trvale zavedeny v RoomOS, mohou stále použít (až) šestiměsíční zpožděnou aktualizaci softwaru, která je poskytována prostřednictvím Control Hub pro cloudová zařízení, aby změnu odložili.

Proč je to nutné? Technické detaily

Hlavním hnacím motorem této změny je, že jsme aktualizovali náš JavaScript engine tak, aby používal QuickJS, který slouží jako moderní, aktualizovaný běhový modul JavaScriptu pro vestavěné systémy. Poté, protože to již není potřeba s moderním JavaScriptem, nyní odstraňujeme podporu pro transpilaci JavaScriptu. Odstranění dalšího kroku transpilování veškerého kódu zkracuje dobu načítání při nasazení a provádění kódu a snižuje složitost platformy.

Přepínač motoru JavaScriptu je ovládán xConfiguration Macros QuickJSEngine: Offzměnou na On. Tato změna byla zavedena v RoomOS v prosinci 2023 (11.11) a plánujeme odstranit tento přepínač konfigurace na stejné časové ose jako. EvaluateTranspiled

Tyto změny provádíme, abychom zajistili maximální výkon RoomOS, a že vám můžeme pomoci efektivně a bezpečně škálovat nasazení rozšíření JavaScriptu.

Přečtěte si více o makrech na roomos.cisco.com.

Byl tento článek užitečný?
Byl tento článek užitečný?