在 RoomOS 上棄用轉譯
RoomOS 巨集中 JavaScript 程式碼的變更
我們已經更新了在 RoomOS 上運行巨集的機器,並且由於這些更新,某些 JavaScript 約定和函數將不再可用於巨集。 特別是, 與 CommonJS 相關的功能不再可用。 需要重寫的代碼的一些常見範例包括:
require()
,包括:require ('xapi')
- 需要重寫為標準 ECMAScript匯入
。 例如,const xapi = require ('xapi')
更改為從'xapi'導入 xapi
要求.main
模組
,包括: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
一樣。 我們的目標是在 2025 年 11 月推出此更改。 當我們看到有多少客戶能夠更新其宏時,此日期可能會更改,但時間線以月而不是年為單位。 確切日期將在此處以及相關 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 上閱讀有關宏的更多資訊。