关于前端:在浏览器中本地运行Nodejs

63次阅读

共计 1701 个字符,预计需要花费 5 分钟才能阅读完成。

所有要从收到一封邮件开始

大早上,我收到一封邮件,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 上,我感觉是有划时代意义的
  • 在我看来,这个技术在将来最次要利用方向是,能够使世界范畴内的软件在以前无奈运行的中央运行,当前电脑上可能只须要装置一个谷歌浏览器

正文完
 0