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