在瀏覽器中本地運行 Node-js
一切要從收到一封郵件開始
大早上,我收到一封郵件,StackBlitz 說正在與 Next.js 和 Google 的團隊合作開發一項新技術
- 幾年前,
StackBlitz
意識到網絡正朝着關鍵的拐點發展。WebAssembly 和新功能 API 的出現使編寫基於 WebAssembly 的操作系統似乎變得可能,該操作系統功能強大到可以完全在瀏覽器中運行 Node.js。我們設想了一個比本地環境更快,更安全和一致的高級開發環境,以實現無縫的代碼協作而無需設置本地環境
技術名爲:WebContainers
-
WebContainers 允許您創建完整的 Node.js 環境,這些環境可以在毫秒內啓動,並且一鍵即可立即聯機和鏈接共享。該環境具有 VS Code 強大的編輯經驗,完整的終端,npm 等功能。它還可以完全在您的瀏覽器中運行,從而帶來一些關鍵的好處:
-
比本地環境快。與 yarn / npm 相比,構建速度最多可提高 20%,而卷裝安裝速度則可快 5 倍以上。
-
瀏覽器中的 Node.js 調試。與 Chrome DevTools 的無縫集成可實現本機後端調試,無需安裝或擴展。
-
默認爲安全。所有代碼執行都發生在瀏覽器的安全沙箱中,而不是在遠程 VM 或本地二進制文件上。
-
同樣,這些環境不在遠程服務器上運行。而是,每個環境都完全包含在您的 Web 瀏覽器中。沒錯:Node.js 運行時本身第一次在瀏覽器中本機運行。
從現在開始,WebContainers 現在處於公開測試階段。當前支持包括 Next.js,GraphQL 和 Vanilla Node.js,我們正在與其他開源項目合作以擴展支持
爲什麼會有WebContainers
安全
- StackBlitz 通過利用瀏覽器中數十年來的速度和安全性創新來解決這些問題。StackBlitz 中的所有計算都會在瀏覽器安全沙箱中立即發生,並且無法爆發到您的本地計算機上。該模型還釋放了一些關鍵的開發和調試優勢(在幾秒鐘內便會提供更多優勢)。
釋放瀏覽器的功能
-
使用 Chrome DevTools 無縫進行 Node.js 調試
-
事實證明,瀏覽器確實非常擅長調試 Javascript。我知道,這令人震驚;)通過在瀏覽器中執行 Node.js,與 Chrome DevTools 的集成即開即用。無需安裝,無需擴展,僅在瀏覽器中進行本機後端調試即可
運行服務器, 在你的瀏覽器中
-
實際上。WebContainers 包含一個虛擬的 TCP 網絡堆棧,該網絡堆棧已映射到瀏覽器的 ServiceWorker API,使您可以即時創建實時 Node.js 服務器,即使您處於脫機狀態也可以繼續工作。因爲它完全在瀏覽器安全沙箱中運行,所以服務器響應的延遲比本地主機(!)少,並且可以保護您的 Web 服務器免受本地主機抓取攻擊
-
毫秒級啓動時間
-
每個頁面加載時都有一個全新的環境
-
再見 rm -rf node_modules!WebContainer 的內置 npm 客戶端是如此之快,以至於它在每次頁面加載時都運行全新的安裝,從而確保您每次都能獲得一個乾淨的環境。如果您的環境確實出現問題,則可以像處理其他任何 Web 應用程序一樣恢復到乾淨的狀態:單擊 “刷新” 按鈕
-
藉助 StackBlitz,無論您是在火車上,在飛機上還是在雨中後座時,都可以在沒有互聯網連接的情況下繼續工作
使用 StackBlitz 新穎的計算模型,100%的代碼執行發生在瀏覽器安全沙箱中。與本地相比,這導致了更快,更少限制的開發環境,同時又提供了更高的安全性,這是非常罕見的組合。
-
實際上,默認的安全狀況是如此穩固,以至於我們的嵌入式軟件包管理器是第一個可公開獲得的工具,可以解決五年多來未解決的 Sam Saccone 長期未解決的 npm 漏洞
-
同樣,這些環境不在遠程服務器上運行。而是,每個環境都完全包含在您的 Web 瀏覽器中。沒錯:Node.js 運行時本身第一次在瀏覽器中本機運行
寫在最後
-
WebAssembly
強大到足以編寫操作系統,但是這次WebContainers
把這個技術使用方向放在了Node.js
上,我覺得是有劃時代意義的 -
在我看來,這個技術在未來最主要應用方向是,可以使世界範圍內的軟件在以前無法運行的地方運行,以後電腦上可能只需要安裝一個谷歌瀏覽器
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/rOfTodlRJeRaWvhFxs3ckw