Zmeny kódu JavaScript v makrách RooMOS
Aktualizovali sme stroje, ktoré prevádzkujú makrá na RoomOS, a v dôsledku týchto aktualizácií niektoré konvencie a funkcie JavaScriptu už nebudú pre makrá k dispozícii. Najmä funkcie súvisiace s CommonJS už nie sú k dispozícii. Niektoré bežné príklady kódu vyžadujúceho prepísanie sú:
require()vrátane:require('xapi')- potrebuje prepísanie na štandardný ECimportMAScript. Napr.const xapi = require('xapi')zmenené naimport xapi from 'xapi'require.main
modulevrátane:module.exports- potrebuje prepísanie na štandardný ECMAScriptexportmodule.name- by sa mal nahradiť_main_module_name()
Ako sa to zapína a vypína?
Tieto zmeny nadobúdajú účin xConfiguration Macros EvaluateTranspilednosť po prepnutí z Truena False. Toto nastavenie je prítomné už dlho a zmena sa zavádza zmenou predvolenej hodnoty v nových vydaniach z Truena False.
Ak sa pri tejto zmene prerušia makrá, explicitné nastavenie prepínača späť (xConfiguration Macros EvaluateTranspiled: 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č zmiz ne po prechodnom období.
Podobne aj na starších verziách RooMOS je možné túto zmenu otestovať bez aktualizácie nastavením prepínača na. False
Poznám@@ ka: Ak je makro uložené v zariadení počas prepínania Falsea neskôr sa rozhodnete prepnúť späť na prepínač True, môže byť potrebné opätovné uložiť tieto makrá v editore makier.
Kedy nadobudnú tieto zmeny účinnosť?
Predvolená hodnota prepínača EvaluateTranspiledbola zmenená na Falsezačínajúcu roomOS májom 2025 (11.28), čo znamená, že zariadenia sa pri aktualizácii predvolene prepnú. V rovnakej verzii je krok transpilácie pri ukladaní makier cez XAPI predvolene vypnutý. Ak je potrebná transpilácia prostredníctvom XAPI, možnosť príkazu transpile musí byť explicitne nastavená na hodnotu true.
Počnú c roomOS júlom 2025 (11.30) sa pri nastavení prepínača zobrazí diagnostika. True Bude to fungovať ako predtým.
V priebehu dopredu sa prepínač úplne odstráni a zariadenie sa bude správať, akoby bolo nastavené False. Naším cieľom je zaviesť túto zmenu v RooMOS novembra 2026 (27.0).
Všetci zákazníci, ktorí napriek nášmu najlepšiemu úsiliu pri snahe upozorniť a informovať o zmenách vidia zlyhanie ich makier, keď sú zmeny natrvalo zavedené v RoomOS, môžu na oneskorenie zmeny stále používať (až) 6-mesačnú oneskorenú aktualizáciu softvéru poskytovanú prostredníctvom Control Hub pre zariadenia registrované v cloude.
Prečo je to potrebné? Technické detaily
Hlavným ovládačom tejto zmeny je, že sme aktualizovali náš JavaScript engine tak, aby používal QuickJS, ktorý slúži ako moderný, aktualizovaný čas spustenia JavaScriptu pre vstavané systémy. Potom, keďže už nie je potrebný s moderným nástrojom JavaScript, teraz odstraňujeme podporu pre transpiláciu JavaScriptu. Odstránenie dodatočného kroku odstraňovania všetkého kódu znižuje čas načítania pri nasadzovaní a vykonávaní kódu, ako aj znižuje zložitosť platformy.
Prepínač motora JavaScript je ovládaný xConfiguration Macros QuickJSEngine: Offzmeneným na On. Táto zmena bola zavedená v RooMOS decembra 2023 (11.11) a plánujeme odstrániť tento konfiguračný prepínač na rovnakej časovej osi ako. EvaluateTranspiled
Tieto zmeny robíme, aby sme zabezpečili maximálnu výkonnosť RoOMos a aby sme vám mohli pomôcť efektívnym a bezpečným spôsobom rozšíriť nasadenie rozšírení JavaScriptu.
Prečítajte si viac o makrách na roomos.cisco.com.