Transpile udfasning på RoomOS
Ændringer af JavaScript-koden i RoomOS-makroer
Vi har opdateret maskinerne, der kører makroerne på RoomOS, og som et resultat af disse opdateringer vil nogle JavaScript-konventioner og funktioner ikke længere være tilgængelige for makroerne. Især er CommonJS-relaterede funktioner ikke længere tilgængelige. Nogle almindelige eksempler på kode, der skal omskrives, er:
kræve()
, herunder:kræve ('xapi')
- skal omskrives til standard ECMAScript-importen. F.eks.,
const xapi = require ('xapi')
ændret for atimportere xapi fra 'xapi'
require.main
modul
, herunder:module.exports
- skal omskrives til standard ECMAScripteksport
module.name
- bør erstattes med_main_module_name()
Hvordan slås dette til og fra?
Disse ændringer træder i kraft, når xConfiguration Macros EvaluationTranspiled
er skiftet fra Sandt
til Falsk
. Denne indstilling har været til stede i lang tid, og ændringen rulles ud ved at ændre standardværdien i nye udgivelser fra Sandt til
Falsk .
Hvis makroer går i stykker ved denne ændring, er eksplicit indstilling af skiftet tilbage (xConfiguration Macros EvalueretTranspiled: Sand
) en kortsigtet løsning for at få dem til at fungere som før. Bemærk dog, at dette kun er en midlertidig løsning: Denne til/fra-knap forsvinder efter en overgangsperiode.
På samme måde kan denne ændring på ældre RoomOS-versioner testes uden opgradering ved at indstille skiftet til Falsk
.
Bemærk: Hvis en makro gemmes på enheden , mens til/fra-knappen er falsk
, og du senere beslutter at TURN skiftet tilbage til Sand , kan det være nødvendigt at
gemme disse makroer igen i makroeditoren.
Hvornår træder disse ændringer i kraft?
Standardværdien for til/fra-knappen Evaluertranspileret
blev ændret til Falsk startende med
RoomOS May 2025 (11.28)), hvilket betyder, atenheder skifter som standard, når de opgraderes. I samme version er transpileringstrinnet, når makroer gemmes via XAPI, slået fra som standard. Hvis der kræves transpilering via XAPI, skal kommandoindstillingen transpilering udtrykkeligt angives til sand.
Fra og med RoomOS juli 2025 (11.30) vises en diagnosticering, når til/fra-knappen er indstillet til Sand
. Det vil stadig fungere som før.
Fremadrettet fjernes skiftet helt, og enheden opfører sig, som om den var indstillet til Falsk
. Vi sigter mod at udrulle denne ændring i november 2025. Denne dato kan ændre sig, efterhånden som vi ser, hvor mange af vores kunder der er i stand til at opdatere deres makroer, men tidslinjen måles i måneder, ikke år. De nøjagtige datoer vil blive offentliggjort her og i udgivelsesnoterne til de relevante RoomOS-udgivelser.
Enhver kunde, der på trods af vores bedste bestræbelser på at forsøge at underrette og informere om ændringerne, ser deres makroer mislykkes, når ændringerne er permanent på plads i RoomOS, kan stadig bruge den (op til) 6-måneders forsinkede softwareopdatering, der leveres via Control Hub til skyregistrerede enheder, til at forsinke ændringen.
Hvorfor er det nødvendigt? Tekniske detaljer
Hoveddrivkraften bag denne ændring er, at vi har opdateret vores JavaScript-motor til at bruge QuickJS, der fungerer som en moderne, opdateret JavaScript-runtime for indlejrede systemer. Efter det, da det ikke længere er nødvendigt med en moderne JavaScript-motor, fjerner vi nu understøttelsen af transpilering af JavaScript. Fjernelse af det ekstra trin med at transpilere al kode reducerer indlæsningstiden ved implementering og udførelse af kode samt reducerer kompleksiteten i platformen.
JavaScript-motorkontakten styres af xConfiguration-makroer QuickJSEngine: Fra
ændret til Til
. Denne ændring blev rullet ud i RoomOS December 2023 (11.11), og vi planlægger at fjerne denne konfigurationsskifte på samme tidslinje som Evalueretranspileret
.
Vi foretager disse ændringer for at sikre, at RoomOS yder maksimalt, og at vi kan hjælpe dig med at skalere implementeringen af JavaScript-udvidelser på en effektiv og sikker måde.
Læs mere om makroer på roomos.cisco.com.