Promjene JavaScript koda u makroima RooMOS
Ažurirali smo strojeve koji pokreću makronaredbe na RoomOS-u, a kao rezultat tih ažuriranja neke JavaScript konvencije i funkcije više neće biti dostupne makronaredbi. Konkretno, funkcije povezane s CommonJS više nisu dostupne. Neki uobičajeni primjeri koda koji trebaju prepisivanje su:
require(), uključujući:require('xapi')- treba prepisati na standardni ECimportMAScript. Npr.,const xapi = require('xapi')promijenjeno uimport xapi from 'xapi'require.main
module, uključujući:module.exports- treba prepisati na standardni ECMAScriptexportmodule.name- treba zamijeniti_main_module_name()
Kako se ovo uključuje i isključuje?
Ove promjene stupaju na snagu nakon xConfiguration Macros EvaluateTranspiledprebacivanja s Truena False. Ova je postavka prisutna već duže vrijeme, a promjena se provodi promjenom zadane vrijednosti u novim izdanjima od Truedo False.
Ako se makronaredbe prekinu na ovoj promjeni, eksplicitno postavljanje preklopa natrag (xConfiguration Macros EvaluateTranspiled: True) kratkoročno je ispravak kako bi radili kao i prije. Međutim, imajte na umu da je ovo samo privremeno rješenje: Ovaj prekidač će nestati nakon prijelaznog razdoblja.
Slično tome, na starijim verzijama RoOMosa ova se promjena može testirati bez nadogradnje postavljanjem prekidača na. False
Napomena: Ako se makronaredbi sprema na uređaj dok je prekidač Falsei kasnije odlučite vratiti prekidač True, možda će biti potrebno ponovno spremanje tih makronaredbi u uređivaču makronaredbi.
Kada će te promjene stupiti na snagu?
Zadana vrijednost prekidača promijenjena je u Falsepočevši od RoomOS svibnja 2025. (11.28), što znači da će se uređaji prema zadanim postavkama mijenjati kada se nadograđuju. EvaluateTranspiled U istoj verziji korak transpilacije prilikom spremanja makronaredbi putem XAPI-ja je prema zadanim postavkama isključen. Ako je potrebna transpilacija putem XAPI-ja, opcija naredbe transpile mora biti eksplicitno postavljena na true.
Počevši s RoomOS-om srpnja 2025. (11.30) dijagnostika će se prikazati kada je prekidač postavljen na. True I dalje će raditi kao i prije.
Idući naprijed, prekidač će se potpuno ukloniti i uređaj će se ponašati kao da je postavljen na False. Cilj nam je uvesti ovu promjenu u RoomOS studenom 2026. (27.0).
Svi korisnici koji, unatoč našim najvećim naporima u pokušaju obavijesti i informiranja o promjenama, vide da njihovi makronaredbi ne uspijevaju kada su promjene trajno uspostavljene u RoomOS-u, i dalje mogu koristiti (do) 6-mjesečno odgođeno ažuriranje softvera koje se pruža putem Control Hub za uređaje registrirane u oblaku kako bi odgodili promjenu.
Zašto je to potrebno? Tehnički detalji
Glavni pokretač ove promjene je taj što smo ažurirali naš JavaScript motor za korištenje QuickJS-a, koji služi kao moderno, ažurirano JavaScript runtime za ugrađene sustave. Nakon toga, budući da više nije potreban s modernim JavaScript motorom, sada uklanjamo podršku za transpilaciju JavaScripta. Uklanjanje dodatnog koraka prijenosa cijelog koda smanjuje vrijeme učitavanja prilikom postavljanja i izvršavanja koda, kao i smanjuje složenost na platformi.
Prekidač JavaScript motora kontrolira xConfiguration Macros QuickJSEngine: Offse promjenom u On. Ova je promjena uvedena u RoOMos-u prosincu 2023. (11.11), a planiramo ukloniti ovaj prekidač konfiguracije na istoj vremenskoj liniji kao. EvaluateTranspiled
Ove promjene radimo kako bismo osigurali maksimalnu izvedbu RoomOS i da vam možemo pomoći da na učinkovit i siguran način skalirate implementaciju JavaScript proširenja.
Pročitajte više o makronaredbi na roomos.cisco.com.