谷歌發佈新的 Node.js Web 渲染界面 Carlo

谷歌發佈新的 Node.js Web 渲染界面 Carlo

谷歌發佈 Carlo 的早期版本,這是谷歌實驗室用來創建 Node.js 應用的實驗性項目。Carlo 使用 Puppeteer 實現 Node.js 應用和 Chrome Web 瀏覽器之間的通信。

在使用 Web 技術創建桌面應用方面,Electron 目前是主導性的技術。與 Electron 不同,Carlo 並不會嘗試將特定版本的 Chrome 和 Node.js 打包在一起,而是依賴於終端用戶的電腦上已安裝的任意版本的 Chrome。

Carlo 並沒有提供構建真正桌面應用的功能,比如修改瀏覽器視圖的名稱、菜單或圖標。相反,Carlo 更像是在本地應用服務器上運行應用並自動在 Chrome 中瀏覽該應用。

Puppeteer 是谷歌的瀏覽器自動化項目,它使用了 DevTools 協議,Carlo 使用這種機制與 Chrome 瀏覽器實例進行通信。

基於 Carlo 的應用並不需要在每次 Chrome 升級的時候發佈更新。這種方式的潛在缺點就是可能會破壞應用程序中的功能。如果無法定位到 70 或更高版本的 Chrome,應用程序將會返回一個錯誤。

推薦使用 pkg 將 Carlo 應用打包到可執行二進制文件中。與之不同,Electron 提供了豐富的應用程序構建基礎設施。

Carlo 可能會重新引發什麼是 Web、什麼不是 Web 的爭論。谷歌的工程師 Alex Russell 曾說過像 Electron 這樣的環境不是 Web 的觀點:

很多的平臺都試圖在允許開發人員使用 Web 的客戶端 - 服務端技術的前提下,讓我們獲取一些“額外(exotic)”的能力。按照這種方式,他們不得不拋棄共享價值體系中的一個或多個方面。這些方式說不上糟糕,甚至其中有很多人可以說是技術天才,但這並不是 Web。

Carlo 所倡導的方式應該非常適合漸進式 Web 應用(Progressive Web Apps)。為桌面應用程序尋求完整功能的開發人員可能會傾向於繼續使用 Electron。

Carlo 可以在 Apache 2 開源協議下使用。現在,官方鼓勵通過Carlo GitHub 項目進行貢獻,貢獻過程應該遵循 Carlo 的貢獻指南和谷歌的開源行為指南。

查看英文原文:https://www.infoq.com/news/2018/11/carlo-google-nodejs


分享到:


相關文章: