<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?推薦一個神器!可以在瀏覽器運(yùn)行 Node.js

          共 2151字,需瀏覽 5分鐘

           ·

          2021-05-31 11:45

          在最新的 Google I/O 主題演講中 stackblitz 向大家介紹了他們與 Next.jsGoogle 團(tuán)隊(duì)合作開發(fā)的在線 IDE WebContainers ,真的是非常驚艷。

          幾年前,我們意識到網(wǎng)絡(luò)正朝著一個關(guān)鍵的拐點(diǎn)發(fā)展。WebAssembly 的出現(xiàn)讓我們可以有能力編寫基于 WebAssembly 的操作系統(tǒng),這個操作系統(tǒng)的功能強(qiáng)大到可以完全在瀏覽器中運(yùn)行 Node.js。我們設(shè)計(jì)了一個比本地環(huán)境更快,更安全和一致的高級開發(fā)環(huán)境,可以實(shí)現(xiàn)無縫代碼協(xié)作,而不需要設(shè)置本地環(huán)境。

          兩年后的今天,他終于誕生了!

          WebContainers

          WebContainers 允許你創(chuàng)建一個完整的 Node.js環(huán)境,它可以在毫秒內(nèi)啟動,并且可以實(shí)現(xiàn)一鍵聯(lián)機(jī)和鏈接共享。這個環(huán)境具有 VS Code 強(qiáng)大的編輯功能,完整的終端,還有 npm 等功能。它也完全在你的瀏覽器中運(yùn)行,這帶來了一些關(guān)鍵的好處:

          • 比本地環(huán)境快。構(gòu)建速度比 yarn/npm20%,包安裝速度可以快 5倍。
          • 支持在瀏覽器中調(diào)試 Node.js 。與 Chrome DevTools 的無縫集成可實(shí)現(xiàn)本機(jī)后端調(diào)試,無需安裝擴(kuò)展。
          • 默認(rèn)安全。所有代碼執(zhí)行都發(fā)生在瀏覽器的安全沙箱中,而不是在遠(yuǎn)程 VM 或本地二進(jìn)制文件上。

          同樣,這些環(huán)境不需要在遠(yuǎn)程服務(wù)器上運(yùn)行。而是每個環(huán)境都完全包含在你的 Web 瀏覽器中。沒錯:Node.js 運(yùn)行時本身是第一次在瀏覽器內(nèi)部本機(jī)運(yùn)行。

          你可以在 StackBlitz.com 上自己嘗試一下:

          為什么

          舊版在線 IDE 在遠(yuǎn)程服務(wù)器上運(yùn)行整個開發(fā)環(huán)境,并將結(jié)果通過 Internet 流回瀏覽器。這種方法的問題在于它太不安全了,而且?guī)缀踉谒蟹矫娑急饶愕谋镜赜?jì)算機(jī)體驗(yàn)更差:首先需要耗時幾分鐘來啟動容器,并且容易出現(xiàn)網(wǎng)絡(luò)延遲,沒有辦法離線工作,經(jīng)常導(dǎo)致網(wǎng)絡(luò)超時,調(diào)試一個已經(jīng)掛掉的容器幾乎是不可能的。

          隨著 Web 開發(fā)慢慢轉(zhuǎn)向像 Next.js 這樣的全棧 SSRSSG,設(shè)置本地的開發(fā)環(huán)境變得越來越麻煩,StackBlitz 通過利用瀏覽器中數(shù)十年來的速度和安全性創(chuàng)新來解決這些問題。StackBlitz 中的所有的計(jì)算都會在瀏覽器安全沙箱中運(yùn)行,不會在你的本地計(jì)算機(jī)上運(yùn)行,這會讓你的開發(fā)過程更快更安全。

          使用 Chrome DevTools 調(diào)試 Node.js

          事實(shí)證明,瀏覽器確實(shí)非常擅長調(diào)試 Javascript。通過在瀏覽器中執(zhí)行 Node.js,與 Chrome DevTools 的集成即開即用。無需安裝,無需擴(kuò)展,僅在瀏覽器就能進(jìn)行本機(jī)后端調(diào)試:

          在瀏覽器中啟動服務(wù)端

          WebContainers 包含一個虛擬的 TCP 網(wǎng)絡(luò)堆棧,這個堆棧會映射到瀏覽器的ServiceWorker API,使你能夠創(chuàng)建實(shí)時的 Node.js 服務(wù)器,即使你處于脫機(jī)狀態(tài)也可以繼續(xù)工作。因?yàn)樗耆跒g覽器安全沙箱中運(yùn)行,所以服務(wù)器響應(yīng)的延遲比 localhost 還小,并且可以保護(hù)你的 Web 服務(wù)器免受本地主機(jī)抓包攻擊:

          毫秒啟動

          瀏覽器執(zhí)行 JavascriptWebAssembly 的速度快得令人難以置信。我們利用這一點(diǎn)來創(chuàng)建一個即時開發(fā)操作系統(tǒng),它不使用服務(wù)器資源,也不會在你的計(jì)算機(jī)上創(chuàng)建 node_modules ...

          零延遲、脫機(jī)運(yùn)行

          無論你是在火車上,在飛機(jī)上還是在雨天后排座位上,都可以在沒有互聯(lián)網(wǎng)連接的情況下繼續(xù)工作:

          默認(rèn)安全

          使用 StackBlitz 先進(jìn)的計(jì)算模型,所有代碼執(zhí)行都發(fā)生在瀏覽器安全沙箱中。與本地相比,這會更快,更少限制的開發(fā)環(huán)境,同時又提供了更高的安全性。

          實(shí)際上,默認(rèn)的安全狀況非常穩(wěn)固,以至于我們的嵌入式軟件包管理器是第一個可公開獲得的工具,可以解決五年多來未解決的 npm 漏洞。

          和桌面程序一樣的編輯體驗(yàn)

          借助 ChromePWA 功能,只需單擊即可輕松安裝 StackBlitz 。幾毫秒后,你就有了一個桌面 IDE。你平時用的快捷鍵,例如 CMD + W和CMD + T,都可以正常工作。此外,就像在本地一樣,你也可以在一個完全獨(dú)立的窗口中打開和調(diào)試開發(fā)服務(wù)器。

          從本地文件系統(tǒng)讀取和寫入。

          Chrome 最近發(fā)布了 File System Access API。這使 PWA能夠請求對本地文件系統(tǒng)的某些部分進(jìn)行持久的讀寫訪問。

          你能分清楚上面哪個是 StackBlitz 哪個是 VS Code 嗎?

          我體驗(yàn)了一波后,感覺還是非常 Nice 了的,目前產(chǎn)品還處于公測階段,大家感興趣可以自己到  StackBlitz.com  自己體驗(yàn)一下。


          內(nèi)推社群


          我組建了一個氛圍特別好的騰訊內(nèi)推社群,如果你對加入騰訊感興趣的話(后續(xù)有計(jì)劃也可以),我們可以一起進(jìn)行面試相關(guān)的答疑、聊聊面試的故事、并且在你準(zhǔn)備好的時候隨時幫你內(nèi)推。下方加 winty 好友回復(fù)「面試」即可。


          瀏覽 75
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青草簧片视频 | 日本最新三级 | 日日夜夜三级电影网站 | 中文无码在线视频 | 影音先锋午夜性爱av |