RoomOS 매크로의 JavaScript 코드 변경 내용

RoomOS에서 매크로를 실행하는 시스템을 업데이트했으며 이러한 업데이트의 결과로 매크로에서 일부 JavaScript 규칙 및 함수를 더 이상 사용할 수 없습니다. 특히 CommonJS 관련 기능은 더 이상 사용할 수 없습니다. 재작성이 필요한 코드의 몇 가지 일반적인 예는 다음과 같습니다.

  1. require()를 포함합니다.
    • require('xapi') - 표준 ECMAScript 임포트로 다시 작성해야 합니다. 예를 들어, const xapi = require('xapi') 가 'xapi'에서 xapi를 가져오도록 변경되었습니다.
    • require.main
  2. 다음을 포함한 모듈:
    • module.exports- 표준 ECMAScript 내보내기로 다시 작성해야 합니다.
    • module.name -는 _main_module_name()로 바꿔야 합니다.

이 기능은 어떻게 켜고 끄나요?

이러한 변경 내용은 xConfiguration Macros EvaluateTranspiled가 True 에서 False 전환되면 적용됩니다 . 이 설정은 오랫동안 존재해 왔으며 새 릴리스의 기본값을 True 에서 False 로 변경하여 변경 내용을 롤아웃합니다.

이 변경으로 인해 매크로가 중단되는 경우 토글을 명시적으로 다시 설정(xConfiguration Macros EvaluateTranspiled: True)하는 것은 이전과 같이 작동하도록 하는 단기 수정 사항입니다. 그러나 이는 일시적인 해결책일 뿐입니다. 이 토글 은 전환 기간이 지나면 사라집니다 .

마찬가지로 이전 RoomOS 버전에서는 토글을 False 로 설정하여 업그레이드하지 않고도 이 변경 사항을 테스트할 수 있습니다.

참고: 토글 이 False 인 동안 매크로가 장치에 저장되어 있고 나중에 토글을 다시 True TURN하기로 결정한 경우 매크로 편집기에서 해당 매크로를 다시 저장해야 할 수 있습니다.

이러한 변경 사항은 언제부터 적용됩니까?

EvaluateTranspiled 토글의 기본값은 RoomOS May 2025 (11.28) 부터 False 변경되었으며, 이는 업그레이드 시 장치가 기본적으로 전환됨을 의미합니다. 동일한 버전에서 XAPI를 통해 매크로를 저장할 때 트랜스파일레이션 단계는 기본적으로 꺼져 있습니다. XAPI를 통해 변환이 필요한 경우 transpile 명령 옵션을 명시적으로 true로 설정해야 합니다.

RoomOS 7월 2025 (11.30) 부터 토글이 참 으로설정되면 진단이 표시됩니다. 이전과 같이 계속 작동합니다.

앞으로 토글이 완전히 제거되고 장치가 False 설정된 것처럼 작동합니다. 이 변경 사항은 2025 년 11월에출시될 예정입니다. 이 날짜는 얼마나 많은 고객이 매크로를 업데이트할 수 있는지 확인함에 따라 변경될 수 있지만 타임라인은 몇 년이 아닌 몇 달 단위로 측정됩니다. 정확한 날짜는 여기와 관련 RoomOS 릴리스의 릴리스 노트에 게시됩니다.

변경 사항을 알리고 알리기 위해 최선을 다했음에도 불구하고 변경 사항이 RoomOS에 영구적으로 적용될 때 매크로가 실패하는 것을 보는 고객은 클라우드 등록된 장치에 대해 Control Hub를 통해 제공되는 (최대) 6개월 지연 소프트웨어 업데이트를 사용하여 변경을 지연할 수 있습니다.

왜 이것이 필요한가요? 기술적 세부 사항

이 변경의 주요 동인은 임베디드 시스템을 위한 최신 업데이트된 JavaScript 런타임 역할을 하는 QuickJS를 사용하도록 JavaScript 엔진을 업데이트했기 때문입니다. 그 후, 최신 JavaScript 엔진에서는 더 이상 필요하지 않으므로 이제 JavaScript 트랜스파일(transpilation)에 대한 지원을 제거합니다. 모든 코드를 트랜스파일하는 추가 단계를 제거하면 코드를 배포하고 실행할 때 로드 시간이 줄어들고 플랫폼의 복잡성이 줄어듭니다.

JavaScript 엔진 스위치는 xConfiguration 매크로에 의해 제어됩니다. QuickJSEngine: Off 가 On 으로변경되었습니다. 이 변경 사항은 RoomOS 12월 2023 (11.11)에서 출시되었으며 EvaluateTranspiled와 동일한 타임라인에서 이 구성 토글을 제거할 계획입니다.

RoomOS가 최대한의 성능을 발휘할 수 있도록 이러한 변경을 수행하고 있으며, 효율적이고 안전한 방식으로 JavaScript 확장 배포를 확장할 수 있도록 지원합니다.

roomos.cisco.com 에서 매크로에 대해 자세히 알아보세요.