云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云解析_导出数据库_超低折扣

小七 141 0

实时预览:使用Wrangler CLI 1.2.0可以更快地构建和测试worker

作为我在Workers Developer Experience团队实习的一部分,我开始为Cloudflare Workers润色Wrangler CLI。如果您不熟悉Workers,那么前提非常简单:编写一点Javascript来接收HTTP请求,进行一些处理,并发出响应。神奇之处在于你的工人脚本在哪里运行:在Cloudflare的edge网络上,它跨越了90多个国家的193个城市。worker几乎可以用于任何事情,从配置Cloudflare缓存行为到构建整个无服务器web应用程序。而且,你根本不必担心运营问题。我很高兴能专注于Wrangler,因为Wrangler的目标是让开发和发布工人项目成为每个人的愉快体验,无论你是一名独自从事下一件大事的开发人员,还是财富100强企业的工程师。serverless的全部意义在于减少摩擦,Wrangler反映了这一点但是,精神,当我6月初开始在Cloudflare工作时,开发经验的某些部分仍然需要一些爱。在为Workers文档编写一个新的WASM教程时,我注意到我的浏览器中正在酝酿一场风暴……Wrangler允许您使用一个名为Wrangler preview的子命令来测试您的Workers项目,每次我调用它来测试一个新的更改时,它都会打开一个新的选项卡。快速迭代是一个好的开发人员体验中最关键的部分,虽然预览很快,但事情变得一团糟。我在和我的工具做斗争,每次我想测试一个新的更改时,都必须跟踪最新的预览选项卡。我知道如果我对此感到恼火,别人也会很生气也是。所以,我考虑了我们的客户想要什么:与他们已经使用的工具相似。我开始创建一个受"webpack dev server"和其他类似的监视和构建工具的启发而创建的体验,其中只有一个选项卡可以实时刷新最新更改。然而,我知道在Workers运行时中进行更改以实现这一目标对于我的实习第2周来说是一项艰巨的任务,因此我开始考虑直接将更新发送到预览器。牧马人是用铁锈写的,所以我可以利用板条箱.io生态系统,同时开发此功能。我使用了notify clate,它在主要操作系统提供的各种文件系统事件api上提供了一个跨平台的抽象层。但是,在实现触发构建和上载的文件监视程序时,存在一些问题:您不能简单地在每个文件系统事件之后触发构建,因为单个文件保存可以根据您使用的编辑器快速连续地发出多个事件!为了防止浪费构建,我实现了一个冷却期,它只在至少2秒没有检测到新的文件系统事件时触发构建过程。Rust丰富的标准库使得实现像这样的并发行为非常优雅:/*接收超时如果接收通道上有事件,则返回Ok*或者,如果冷却期已经过去,则返回Err。while let Ok(\u)语法*如果冷却期结束,将结束循环;如果rx通道上发生事件,则重新启动冷却期*/同时让Ok(u)=接收超时(冷却时间){消息::正在工作("在冷却期间检测到更改…");}另一个挑战是处理与预览者的沟通。我决定使用一个非传统的WebSockets应用程序,创建一个到localhost的应用程序,以允许浏览器应用程序与运行在本地计算机上的Wrangler CLI通信。我与Workers UI团队协调,将我的WebSocket客户端添加到预览UI中,并与安全团队一起通过对该功能的安全审查,以确保脚本内容得到适当的保护曝光。这个是结果:这是开发人员体验是什么。你应该觉得