Отхвърляне на транспилация на RoomOS
Промени в JavaScript кода в макросите на RoomOS
Актуализирахме машината, работеща с макросите на RoomOS, и в резултат на тези актуализации някои конвенции и функции на JavaScript вече няма да са достъпни за макросите. По-специално, функциите, свързани с CommonJS , вече не са налични. Някои често срещани примери за код, който се нуждае от пренаписване, са:
require(),
включително:require('xapi')
- нуждае се от пренаписване на стандартния импорт на ECMAScript. Например,const
xapi = require('xapi')
променено заимпортиране на xapi от 'xapi'
require.main
,
включващ:module.exports
- нуждае се от пренаписване към стандартния експорт на ECMAScriptmodule.name
- трябва да се замени с_main_module_name()
Как се включва и изключва това?
Тези промени влизат в сила, след като xConfiguration Macros EvaluateTranspiled
се превключи от True
на False
. Тази настройка е налице от дълго време и промяната се въвежда чрез промяна на стойността по подразбиране в новите версии от Вярно
на Невярно
.
Ако макросите се счупят при тази промяна, изричното задаване на превключвателя назад (xConfiguration Macros EvaluateTranspiled: True
) е краткосрочна корекция, за да ги накарате да работят както преди. Имайте предвид обаче, че това е само временно решение: Този превключвател ще изчезне след преходен период.
По същия начин, при по-старите версии на RoomOS тази промяна може да бъде тествана без надграждане, като зададете превключвателя на False
.
Забележка: Ако макрос е записан на устройството , докато превключвателят е False
и по-късно решите да TURN превключвателя обратно на True
, може да се наложи повторно запазване на тези макроси в редактора на макроси.
Кога ще влязат в сила тези промени?
Стойността по подразбиране на превключвателя EvaluateTranspiled
беше променена на False
, започвайки с RoomOS May 2025 (11.28), което означава, че устройствата ще се превключват по подразбиране при надстройка. В същата версия стъпката на транспилация при запазване на макроси чрез XAPI е изключена по подразбиране. Ако се изисква транспилация чрез XAPI, опцията transpile command трябва да бъде изрично зададена на true.
Започвайки с RoomOS юли 2025 (11.30), диагностиката ще се показва, когато превключвателят е зададен на True
. Все още ще работи както преди.
Занапред превключвателят ще бъде премахнат напълно и устройството ще се държи така, сякаш е настроено на False
. Целта ни е да въведем тази промяна през ноември 2025 г. Тази дата може да се промени, когато видим колко от нашите клиенти могат да актуализират своите макроси, но времевата линия се измерва в месеци, а не в години. Точните дати ще бъдат публикувани тук и в бележките по изданието на съответните издания на RoomOS.
Всички клиенти, които въпреки усилията ни да уведомим и информираме за промените, видят, че техните макроси се провалят, когато промените са постоянно въведени в RoomOS, все още могат да използват (до) 6-месечната забавена актуализация на софтуера, която се предоставя чрез Control Hub за регистрирани в облака устройства, за да забавят промяната.
Защо е необходимо това? Технически подробности
Основният двигател за тази промяна е, че актуализирахме нашия JavaScript двигател, за да използваме QuickJS, който служи като модерна, актуализирана среда за изпълнение на JavaScript за вградени системи. След това, тъй като вече не е необходим с модерен JavaScript двигател, сега премахваме поддръжката за транспилация на JavaScript. Премахването на допълнителната стъпка от транспилирането на целия код намалява времето за зареждане при внедряване и изпълнение на код, както и намалява сложността на платформата.
Превключвателят на JavaScript двигателя се управлява от макроси xConfiguration QuickJSEngine: Off
е променено на On
. Тази промяна беше въведена в RoomOS декември 2023 (11.11) и планираме да премахнем този превключвател за конфигурация на същата времева линия като EvaluateTranspiled
.
Правим тези промени, за да гарантираме, че RoomOS работи максимално и че можем да ви помогнем да мащабирате внедряването на JavaScript разширения по ефективен и сигурен начин.
Прочетете повече за макросите на roomos.cisco.com.