在 RoomOS 上棄用轉譯

list-menu意見回饋?
我們已經更新了我們的 JavaScript 引擎以使用 QuickJS,它充當嵌入式系統的現代、更新的 JavaScript 運行時。 作為這一舉措的一部分,我們現在計劃在我們的平臺中刪除對 JavaScript 轉譯的支援。

RoomOS 巨集中 JavaScript 程式碼的變更

我們已經更新了在 RoomOS 上運行巨集的機器,並且由於這些更新,某些 JavaScript 約定和函數將不再可用於巨集。 特別是, 與 CommonJS 相關的功能不再可用。 需要重寫的代碼的一些常見範例包括:

  1. require(),包括:
    • require ('xapi') - 需要重寫為標準 ECMAScript 匯入。 例如, const xapi = require ('xapi') 更改為 從'xapi'導入 xapi
    • 要求.main
  2. 模組,包括:
    • module.exports - 需要重寫為標準 ECMAScript 匯出
    • module.name - 應替換為 _main_module_name()

這是如何打開和關閉的?

一旦 xConfiguration 巨集「轉譯 評估」從 True 切換False,這些變更就會生效。 此設置已存在很長時間,通過將新版本中的預設值從 True 更改為 False,可以推出更改。

如果宏在此更改中中斷,則顯式設置切換開關 (xConfiguration 宏評估轉譯:True) 是使它們像以前一樣工作的短期修復。 但請注意,這隻是一個臨時解決方案:此切換 將在過渡期后消失

同樣,在較舊的 RoomOS 版本上,通過將切換開關 設置為 False,可以在不升級的情況下測試此更改。

注意:如果在切換 為 False 時將巨集保存在設備上 ,並且您後來決定將切換 TURN 切換回 True,則可能需要在巨集編輯器中重新保存這些宏。

這些更改何時生效?

從 RoomOS May 2025 (11.28)開始,「 評估轉譯 」切換開關的預設值已更改為 False ,這意味著裝置在升級時將預設 切換。 在同一版本中,默認情況下,通過 XAPI 保存宏時的轉譯步驟處於關閉狀態。 如果需要通過 XAPI 進行轉譯,則必須將轉譯命令選項顯式設置為 true。

RoomOS July 2025 (11.30) 開始,當切換設定為 True 時,診斷訊息將顯示亮起。 它仍然可以像以前一樣工作。

展望未來,切換開關將被完全刪除,設備的行為就像設置為 False 一樣。 我們的目標是在 2027 年初推出此更改。 當我們看到有多少客戶能夠更新其宏時,此日期可能會更改,但時間線以月而不是年為單位。 確切日期將在此處以及相關 RoomOS 版本的發行說明中發布。

儘管我們盡最大努力通知和通知更改,但當更改永久存在於 RoomOS 中時,任何客戶看到其宏失敗,仍可以使用通過 Control Hub 為雲註冊設備提供的 (最多) 6 個月的延遲軟體更新來延遲更改。

為什麼有必要這樣做? 技術細節

此更改的主要驅動力是我們已經更新了 JavaScript 引擎以使用 QuickJS,它充當嵌入式系統的現代、更新的 JavaScript 運行時。 在那之後,由於現代 JavaScript 引擎不再需要它,我們現在刪除了對 JavaScript 轉譯的支援。 刪除轉譯所有代碼的額外步驟可減少部署和執行代碼時的載入時間,並降低平臺的複雜性。

JavaScript 引擎開關由 xConfiguration Macros QuickJSEngine:Off 變更為 On。 此更改已在 RoomOS 十二月 2023 (11.11)中推出,我們計劃與 EvaluateTranspiled 在同一時間軸上移除此配置切換開關。

我們進行這些更改是為了確保 RoomOS 發揮最大效能,並且我們可以説明您以高效且安全的方式擴展 JavaScript 擴展的部署。

在 roomos.cisco.com 閱讀有關宏的更多資訊。

本文是否有幫助?
本文是否有幫助?