Transpile a depreciação no RoomOS
list-menuComentários?
Atualizamos nosso mecanismo de JavaScript para usar o QuickJS, que serve como um tempo de execução de JavaScript moderno e atualizado para sistemas embarcados. Como parte dessa mudança, agora planejamos remover o suporte à transpilação de JavaScript em nossa plataforma.

Alterações no código JavaScript nas macros do RoomOS

Atualizamos o maquinário que executa as macros no RoomOS e, como resultado dessas atualizações, algumas convenções e funções do JavaScript não estarão mais disponíveis para as macros. Em particular, as funções relacionadas ao CommonJS não estão mais disponíveis. Alguns exemplos comuns de código que precisa ser reescrito são:

  1. require(), incluindo:
    • require('xapi')- precisa ser reescrito para o importECMAScript padrão. Por exemplo, const xapi = require('xapi')alterado para import xapi from 'xapi'
    • require.main
  2. module, incluindo:
    • module.exports- precisa ser reescrito para o ECMAScript padrão export
    • module.name- deve ser substituído por _main_module_name()

Como isso é ligado e desligado?

Essas alterações entram em vigor quando xConfiguration Macros EvaluateTranspiledsão alternadas de Truepara. False Essa configuração está presente há muito tempo e a alteração é implementada alterando o valor padrão em novas versões de Truepara False.

Se as macros falharem com essa alteração, definir explicitamente o toggle back (xConfiguration Macros EvaluateTranspiled: True) é uma correção de curto prazo para fazê-las funcionar como antes. Observe, no entanto, que essa é apenas uma solução temporária: essa alternância desaparecerá após um período de transição.

Da mesma forma, em versões mais antigas do RoomOS, essa alteração pode ser testada sem atualização, definindo o botão para. False

Observação: se uma macro for salva no dispositivo enquanto estiver ativada a opção Falsee você decidir reativá-la posteriormente True, talvez seja necessário salvá-las novamente no editor de macros.

Quando essas mudanças entrarão em vigor?

O valor padrão da EvaluateTranspiledalternância foi alterado para Falsecomeçar com RoomOS de maio de 2025 (11,28), o que significa que os dispositivos mudarão por padrão quando atualizados. Na mesma versão, a etapa de transpilação ao salvar macros por meio do XAPI é desativada por padrão. Se a transpilação for necessária por meio do XAPI, a opção do comando transpile deverá ser explicitamente definida como verdadeira.

A partir do RoomOS de julho de 2025 (11h30), um diagnóstico será exibido quando o botão estiver configurado para. True Ainda funcionará como antes.

A partir de agora, o botão será completamente removido e o dispositivo se comportará como se estivesse configurado para. False Nosso objetivo é implementar essa mudança no RoomOS em novembro de 2026 (27.0).

Qualquer cliente que, apesar de nossos melhores esforços em tentar notificar e informar sobre as alterações, veja suas macros falharem quando as alterações estão permanentemente em vigor no RoomOS ainda podem usar a atualização de software com atraso de (até) 6 meses fornecida pelo Control Hub para dispositivos registrados na nuvem para atrasar a alteração.

Por que isso é necessário? Detalhes técnicos

O principal fator para essa mudança é que atualizamos nosso mecanismo de JavaScript para usar o QuickJS, que serve como um tempo de execução de JavaScript moderno e atualizado para sistemas embarcados. Depois disso, como não é mais necessário com um mecanismo JavaScript moderno, estamos removendo o suporte à transpilação do JavaScript. A remoção da etapa extra de transpilar todo o código reduz o tempo de carregamento ao implantar e executar o código, além de reduzir a complexidade na plataforma.

O switch do mecanismo JavaScript é controlado por xConfiguration Macros QuickJSEngine: Offchanged to On. Essa alteração foi lançada no RoomOS em dezembro de 2023 (11.11) e planejamos remover essa opção de configuração no mesmo cronograma de. EvaluateTranspiled

Estamos fazendo essas mudanças para garantir que o RoomOS funcione ao máximo e que possamos ajudá-lo a escalar a implantação de extensões JavaScript de maneira eficiente e segura.

Leia mais sobre macros em roomos.cisco.com.

Este artigo foi útil?
Este artigo foi útil?