Desuso de transpile en RoomOS
list-menu¿Comentarios?
Hemos actualizado nuestro motor JavaScript para usar QuickJS, que sirve como un tiempo de ejecución de JavaScript moderno y actualizado para sistemas embebidos. Como parte de este movimiento, ahora planeamos eliminar el soporte para la transpilación de JavaScript en nuestra plataforma.

Cambios en el código JavaScript en macros de RoomOS

Hemos actualizado la maquinaria que ejecuta las macros en RoomOS y, como resultado de estas actualizaciones, algunas convenciones y funciones de JavaScript ya no estarán disponibles para las macros. En particular, las funciones relacionadas con CommonJS ya no están disponibles. Algunos ejemplos comunes de código que necesita reescritura son:

  1. require(), incluyendo:
    • require('xapi')- necesita reescribir al importECMAScript estándar. Por ejemplo, const xapi = require('xapi')cambiado a import xapi from 'xapi'
    • require.main
  2. module, incluyendo:
    • module.exports- necesita reescribir al estándar ECMAScript export
    • module.name- debe ser reemplazado por _main_module_name()

¿Cómo se enciende y apaga esto?

Estos cambios entran en vigor una vez xConfiguration Macros EvaluateTranspiledque se cambia de Truea. False Esta configuración ha estado presente durante mucho tiempo y el cambio se implementó cambiando el valor predeterminado en las nuevas versiones de Truea False.

Si las macros se rompen en este cambio, establecer explícitamente la opción toggle back (xConfiguration Macros EvaluateTranspiled: True) es una solución a corto plazo para que funcionen como antes. Tenga en cuenta, sin embargo, que esta es solo una solución temporal: esta opción desaparecía después de un período de transición.

Del mismo modo, en versiones anteriores de RoomOS, este cambio se puede probar sin necesidad de actualizar configurando el interruptor en. False

Nota: Si se guarda una macro en el dispositivo mientras está la palanca Falsey luego decide volver a activar la opción True, puede ser necesario volver a guardar esas macros en el editor de macros.

¿Cuándo entrarán en vigor estos cambios?

El valor predeterminado de la EvaluateTranspiledopción se cambió a Falsepartir de RoomOS en mayo de 2025 (11.28), lo que significa que los dispositivos cambiarán de forma predeterminada cuando se actualicen. En la misma versión, el paso de transpilación al guardar macros a través de XAPI está desactivado de forma predeterminada. Si se requiere transpilación a través de XAPI, la opción de comando transpile debe estar explícitamente establecida en true.

A partir de RoomOS julio de 2025 (11.30), se mostrará un diagnóstico cuando el interruptor esté configurado en. True Seguirá funcionando como antes.

En el futuro, el interruptor se eliminará por completo y el dispositivo se comportará como si estuviera configurado en False. Nuestro objetivo es implementar este cambio en RoomOS noviembre de 2026 (27.0).

Cualquier cliente que, a pesar de nuestros mejores esfuerzos para tratar de notificar e informar sobre los cambios, vea que sus macros fallan cuando los cambios están permanentemente implementados en RoomOS, aún puede usar la actualización de software retrasada (hasta) 6 meses que se proporciona a través de Control Hub para dispositivos registrados en la nube para retrasar el cambio.

¿Por qué es esto necesario? Detalles técnicos

El principal impulsor de este cambio es que hemos actualizado nuestro motor JavaScript para usar QuickJS, que sirve como un tiempo de ejecución de JavaScript moderno y actualizado para sistemas embebidos. Después de eso, dado que ya no es necesario con un motor JavaScript moderno, ahora estamos eliminando el soporte para la transpilación de JavaScript. Eliminar el paso adicional de transpillar todo el código reduce el tiempo de carga al implementar y ejecutar código, así como también reduce la complejidad en la plataforma.

El interruptor del motor JavaScript se controla xConfiguration Macros QuickJSEngine: Offcambiando a On. Este cambio se implementó en RoomOS diciembre de 2023 (11.11) y planeamos eliminar este interruptor de configuración en la misma línea de tiempo que. EvaluateTranspiled

Estamos haciendo estos cambios para garantizar que RoomOS funcione al máximo y que podamos ayudarle a escalar la implementación de extensiones JavaScript de una manera eficiente y segura.

Lea más sobre macros en roomos.cisco.com.

¿Ha encontrado este artículo útil?
¿Ha encontrado este artículo útil?