WebContainers能让Node.js在浏览器中本地运行


Next.js和Google的团队合作开发一项新技术:WebContainers:
WebAssembly和新功能API的出现使编写基于WebAssembly的操作系统似乎变得可能,该操作系统功能强大到可以完全在浏览器中运行Node.js。我们设想了一个比本地环境更快,更安全和一致的高级开发环境,以实现无缝代码协作,而无需设置本地环境。
这样Web现在可以为图形设计师视频编辑器丰富的文档编辑环境运行完整的环境。
WebContainers允许您创建完整的Node.js环境,这些环境可以在毫秒内启动,并且一键即可立即联机和链接共享。该环境具有VS Code强大的编辑经验,完整的终端,npm等功能。它也完全在您的浏览器中运行,这带来了一些关键的好处:

  • 比本地环境快。构建速度比yarn/npm快20%,安装速度快=> 5倍。
  • 浏览器中的Node.js调试。与Chrome DevTools的无缝集成可实现本机后端调试,无需安装或扩展。
  • 默认为安全。所有代码执行都发生在浏览器的安全沙箱中,而不是在远程VM或本地二进制文件上。

注意,这些环境不在远程服务器上运行。而是,每个环境都完全包含在您的Web浏览器中。没错:Node.js运行时本身是第一次在浏览器内部本机运行。
您可以在StackBlitz.com上自己尝试一下,也可以单击下面的一个启动程序项目来尝试一下。
 
好处:使用Chrome DevTools无缝进行Node.js调试
事实证明,浏览器确实非常擅长调试Javascript。我知道,这令人震惊;)通过在浏览器中执行Node.js,与Chrome DevTools的集成即开即用。无需安装,无需扩展,仅在浏览器中进行本机后端调试即可
 
好处2:安全运行在浏览器中
WebContainers包含一个虚拟的TCP网络堆栈,该堆栈已映射到浏览器的ServiceWorker API,使您能够即时创建实时Node.js服务器,即使您处于脱机状态也可以继续工作。因为它完全在浏览器安全沙箱中运行,所以服务器响应的延迟比本地主机(!)少,并且可以保护您的Web服务器免受本地主机抓取攻击。
 
好处3:毫秒级快速启动、脱机工作
浏览器执行Javascript和WebAssembly的速度非常快。我们利用它来创建一个即时开发的OS,该OS不使用服务器资源,并且不会node_modules在您的计算机上造成黑洞。
无论您是在火车上,在飞机上还是在雨天后排座位上,都可以在没有互联网连接的情况下继续工作。