4

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

 3 years ago
source link: https://segmentfault.com/a/1190000040050241
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在浏览器中本地运行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上,我觉得是有划时代意义的
  • 在我看来,这个技术在未来最主要应用方向是,可以使世界范围内的软件在以前无法运行的地方运行,以后电脑上可能只需要安装一个谷歌浏览器

Recommend

  • 21

    作者简介 Chris Tozzi,曾担任记者和Linux管理员。对开源技术、敏捷基础架构以及网络问题兴趣浓厚。目前担任高级内容编辑,并且是Fixate IO的DevOps分析师。 Kubernetes的主要目的是通过复杂的负载均衡和资源...

  • 10
    • colobu.com 4 years ago
    • Cache

    本地运行Go泛型代码

    昨天 Ian Lance Taylor 和 Robert Griesemer 发布了Go泛型的新的草案( The Next Step for Generics ), 国内外的Gopher反响非常的热烈,大家纷纷对草案和这个文章进行了解读,...

  • 38

    本地运行Go泛型代码 昨天 Ian Lance Taylor 和 Robert Griesemer 发布了Go泛型的新的草案(

  • 24
    • studygolang.com 4 years ago
    • Cache

    在本地运行 fyne 官网

    简介 要深入学习和理解一个框架,官方文档是必须要仔细阅读的。fyne 官网有非常系统和详尽的文档。官方网站: https://fyne.io/ 。有时候我们会有这样一个需求——离线查看文档。我经常乘坐高铁...

  • 20

    Kubernetes作为最重要的开源容器编排平台,用于自动化部署,扩展和管理容器化应用程序。尽管大多数企业在云环境中运行Kubernetes,但不少企业选择在本地运行Kubernetes集群,因为首先在决定将其用作部署应用程序的主要平台之前,可以快速...

  • 15
    • www.itwork.club 3 years ago
    • Cache

    本地运行 Pug 文件

    本地运行 Pug 文件漂洋过海来看你IT俱乐部-码出人生本地运行 Pug 文件Aug 19, 2020web41点...

  • 11
    • suiyia.github.io 3 years ago
    • Cache

    本地运行 Kafka 与 Zookeeper

    本地运行 Kafka 与 Zookeeper本地运行 kafka,运行生产消费实例。Kafka 是一个分布式发布-订阅消息系统。Zookeeper 是一个高性能分布式应用协调服务。他们之间的关系

  • 20
    • suiyia.github.io 3 years ago
    • Cache

    canal学习一:本地运行 canal

    canal学习一:本地运行 canal 2019-10-13 cana...

  • 6

    WebContainers能让Node.js在浏览器中本地运行Next.js和Google的团队合作开发一项新技术:WebContainers:WebAssembly和新功能API的出现使编写基于WebAssembly的操作系统似乎变得可能,该操作系统功能强大到...

  • 3

    WebContainers 简介:在浏览器中本地运行 Node.js 几年前,我们意识到网络正在走向一个关键的拐点。WebAssembly 和新

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK