Transpile zastarané na RoomOS
Zmeny v kóde JavaScript v makrách RoomOS
Aktualizovali sme mašinériu spúšťajúcu makrá v systéme RoomOS a v dôsledku týchto aktualizácií už niektoré konvencie a funkcie JavaScriptu nebudú pre makrá dostupné. Najmä funkcie súvisiace s CommonJS už nie sú k dispozícii. Niektoré bežné príklady kódu, ktorý je potrebné prepísať, sú:
vyžadovať()
vrátane:require('xapi')–
je potrebné prepísať na štandardný import ECMAScript. Napr.,
const xapi = require('xapi')
zmenené naimport xapi z 'xapi'
Požiadavka.hlavná
modul
vrátane:module.exports
- je potrebné prepísať na štandardný export ECMAScriptmodule.name
- by mal byť nahradený _main_module_name()
Ako sa táto funkcia zapína a vypína?
Tieto zmeny sa prejavia po prepnutí
makier xConfiguration Macros EvaluateTranspiled z True
na False
. Toto nastavenie je prítomné už dlho a zmena sa zavádza zmenou predvolenej hodnoty v nových vydaniach z True
na False
.
Ak sa pri tejto zmene makrá prerušia, explicitné nastavenie prepínača späť (xConfiguration Macros EvaluationTranspiled: True
) je krátkodobá oprava, aby fungovali ako predtým. Upozorňujeme však, že ide len o dočasné riešenie: Tento prepínač po prechodnom období zmizne .
Podobne na starších verziách RoomOS je možné túto zmenu testovať bez inovácie nastavením prepínača na hodnotu False
.
Poznámka: Ak je makro uložené v zariadení , zatiaľ čo prepínač je False
a neskôr sa rozhodnete TURN prepnúť späť na hodnotu Pravda
, môže byť potrebné znova uložiť tieto makrá do editora makier.
Kedy tieto zmeny nadobudnú účinnosť?
Predvolená hodnota prepínača EvaluateTranspiled bola zmenená
na False
počnúc RoomOS May 2025 (11.28), čo znamená, že zariadenia sa pri aktualizácii predvolene prepnú. V rovnakej verzii je krok transpilácie pri ukladaní makier prostredníctvom XAPI predvolene vypnutý. Ak sa transpilácia vyžaduje prostredníctvom XAPI, možnosť príkazu transpile musí byť explicitne nastavená na hodnotu true.
Počnúc RoomOS júl 2025 (11.30) diagnostika sa zobrazí, keď je prepínač nastavený na hodnotu True
. Stále to bude fungovať ako predtým.
V budúcnosti sa prepínač úplne odstráni a zariadenie sa bude správať, akoby bolo nastavené na hodnotu False
. Túto zmenu chceme zaviesť v novembri 2025. Tento dátum sa môže zmeniť, keď zistíme, koľko našich zákazníkov dokáže aktualizovať svoje makrá, ale časová os sa meria v mesiacoch, nie rokoch. Presné dátumy budú zverejnené tu a v poznámkach k vydaniu príslušných vydaní RoomOS.
Všetci zákazníci, ktorým napriek nášmu maximálnemu úsiliu v snahe upozorniť na zmeny a informovať o nich zlyhajú, keď sú zmeny trvalo zavedené v systéme RoomOS, môžu na oddialenie zmeny použiť (až) 6-mesačnú oneskorenú aktualizáciu softvéru, ktorá je poskytovaná prostredníctvom ovládacieho centra pre zariadenia registrované v cloude.
Prečo je to potrebné? Technické údaje
Hlavným hnacím motorom tejto zmeny je, že sme aktualizovali náš nástroj JavaScript tak, aby používal QuickJS, ktorý slúži ako moderný, aktualizovaný modul runtime JavaScript pre vstavané systémy. Potom, pretože to už nie je potrebné s moderným nástrojom JavaScript, teraz odstraňujeme podporu pre transpiláciu JavaScriptu. Odstránenie ďalšieho kroku transpilácie celého kódu skracuje čas načítania pri nasadzovaní a vykonávaní kódu, ako aj znižuje zložitosť platformy.
Prepínač nástroja JavaScript je riadený aplikáciou xConfiguration Macros QuickJSEngine: Off
zmenené na On
. Táto zmena bola zavedená v RoomOS December 2023 (11.11) a plánujeme odstrániť tento prepínač konfigurácie na rovnakej časovej osi ako EvaluationTranspiled
.
Tieto zmeny robíme preto, aby sme zabezpečili, že RoomOS bude fungovať na maximum a že vám pomôžeme efektívne a bezpečne škálovať nasadenie rozšírení JavaScript.
Prečítajte si ďalšie informácie o makrách na # roomos.cisco.com.