Spremembe kode JavaScript v makrih RooMOS
Posodobili smo stroje, ki izvajajo makre na RoomOS, in zaradi teh posodobitev nekatere konvencije in funkcije JavaScript ne bodo več na voljo makrom. Zlasti funkcije, povezane s CommonJS, niso več na voljo. Nekateri pogosti primeri kode, ki jih je treba prepisati, so:
require(), vključno z:require('xapi')- potrebuje prepisovanje na standardni ECimportMAScript. Npr.const xapi = require('xapi')spremenjeno vimport xapi from 'xapi'require.main
module, vključno z:module.exports- potrebuje prepisovanje na standardni ECMAScriptexportmodule.name- je treba nadomestiti z_main_module_name()
Kako je to vklopljeno in izklopljeno?
Te spremembe začnejo veljati, ko xConfiguration Macros EvaluateTranspiledse preklopi iz Truena False. Ta nastavitev je prisotna že dolgo in sprememba se izvede s spreminjanjem privzete vrednosti v novih izdajah od Truedo False.
Če se makri prekinejo s to spremembo, je izrecna nastavitev preklopa nazaj (xConfiguration Macros EvaluateTranspiled: True) kratkoročna rešitev, da bodo delovali kot prej. Upoštevajte pa, da je to le začasna rešitev: ta preklop bo izginil po prehodnem obdobju.
Podobno je v starejših različicah RoomOS to spremembo mogoče preizkusiti brez nadgradnje tako, da nastavite preklop na. False
O pomba: Če je makro shranjen v napravi, med tem ko je preklop, Falsein se pozneje odločite, da ga preklopite nazaj True, bo morda potrebno ponovno shraniti te makre v urejevalniku makrov.
Kdaj bodo te spremembe začele veljati?
Privzeta vrednost EvaluateTranspiledpreklopa je bila spremenjena na Falsezačetek z RoomOS maja 2025 (11.28), kar pomeni, da se bodo naprave privzeto preklopili ob nadgradnji. V isti različici je korak transpilacije pri shranjevanju makrov prek XAPI privzeto izklopljen. Če je transpiracija potrebna prek XAPI, mora biti možnost ukaza transpile izrecno nastavljena na true.
Začenši z RoomOS julijem 2025 (11.30) bo diagnostična diagnoza prikazana, ko je preklop nastavljen na. True Še vedno bo delovalo kot prej.
Če gremo naprej, bo preklop popolnoma odstranjen in naprava se bo obnašala, kot da bi bila nastavljena. False To spremembo želimo uvesti v RoomOS novembra 2026 (27. 0).
Vse stranke, ki kljub našim najboljšim prizadevanjem pri poskušanju obveščanja in obveščanja o spremembah vidijo, da njihovi makri ne uspejo, ko so spremembe trajno vzpostavljene v RoomOS, lahko še vedno uporabljajo (do) 6-mesečno zakasnjeno posodobitev programske opreme, ki je na voljo prek Control Hub za naprave, registrirane v oblaku, da odložijo spremembo.
Zakaj je to potrebno? Tehnične podrobnosti
Glavni gonilnik te spremembe je, da smo posodobili naš JavaScript motor za uporabo QuickJS, ki služi kot sodoben, posodobljen izvajalec JavaScript za vgrajene sisteme. Po tem, ker ni več potreben s sodobnim motorjem JavaScript, zdaj odstranjujemo podporo za transpilacijo JavaScripta. Odstranitev dodatnega koraka odstranjevanja vse kode skrajša čas nalaganja pri uvajanju in izvajanju kode ter zmanjša zapletenost na platformi.
Stikalo motorja JavaScript nadzira xConfiguration Macros QuickJSEngine: Offspremenjeno v On. Ta sprememba je bila uvedena v RoomOS decembra 2023 (11.11), ta preklop konfiguracije pa nameravamo odstraniti na isti časovnici kot. EvaluateTranspiled
Te spremembe izvajamo zato, da bi zagotovili največjo učinkovitost RoomOS in da vam lahko pomagamo razširiti uvedbo razširitev JavaScript na učinkovit in varen način.
Več o makrih preberite na roomos.cisco.com.