Deno 1.4

2020-09-14 02:48:21

<;-返回到Web标准WebSocket API概述:您现在可以像在浏览器中一样使用WebSocket进行通信。

文件更改时自动重新启动:使用Deno run启动ascript--查看文件更改时自动重新加载它。

集成测试覆盖率:使用Deno test--coverage运行您的测试,以获得测试覆盖率的摘要。

如果您已经安装了Deno,您可以通过运行Deno Upgrade升级到1.4。如果您是第一次安装Deno,您可以使用下面列出的方法之一:

此版本增加了对Web标准WebSocket API的支持,该API在所有现代浏览器中都可用。它可用于通过WebSocket协议与远程服务器通信。

Deno现在有一个集成的文件观察器,当脚本的任何依赖项发生变化时,可以使用它来重新启动脚本。

要使用它,可以像往常一样运行您的脚本,但是要添加--watch标志,您还需要添加--unstant标志,因为这个特性还不稳定。

监视标志不带要监视的目录或文件的参数。相反,它会自动确定脚本的所有本地导入,并对其进行监视。

目前只有Deno run支持文件监视,但将来还会将其添加到Deno test中,可能还会添加到其他子命令中。

现在,您可以使用Deno测试的--coverageflag查找测试没有覆盖的代码。启用后,它将在运行所有测试后打印每个文件的编解码器覆盖摘要。您还必须添加--unstant标志,因为此功能还不稳定。

检测结果:正常。2通过;0失败;0被忽略;0被测量;0被过滤掉(40ms)。

目前唯一可用的输出格式是文本摘要。其他输出格式如lcov和json将在将来添加。

对于所有使用--unstant的用户,现在默认情况下将打开IsolatedModules和import sNotUsedAsValues类型脚本编译器选项。我们将在将来为每个人默认启用这些标志。这些标志在TypeScript编译器中启用一些更严格的检查,这可能会导致一些您以前未见过的新错误:

错误TS1205:提供';--solatedModules';标志时重新导出类型需要使用';导出类型';。

错误TS1371:此导入从不用作值,必须使用';导入类型';,因为';import sNotUsedAsValues';设置为';错误';。

导入或重新导出接口或类型别名时会发生这些错误。要修复此错误,请将导入和重新导出更改为使用导入类型和导出类型。示例:

用于进行依赖分析的Deno info工具在这次更新中进行了重大改进。它现在速度更快,也不那么笨拙了。此外,现在显示了依赖项的文件大小,这使得很容易找出哪些依赖项向您的项目添加了大量代码。

大多数现代浏览器都支持使用CSS设置console.log消息的样式。为了尽可能与Web兼容,Deno现在还支持console.log的CSS样式。

要设置邮件样式,请向邮件添加%c格式参数,并指定要作为参数应用到console.log的样式:

Deno支持CSS属性color、Background-color、Font-Weight、Font-Style、Text-Decotion-Color和Text-Definition-line。对这些属性的支持,以及自定义RGB、十六进制和HSL颜色取决于您的终端对ANSI的支持。

在这个版本中,我们增加了对最终规则的支持,以获得与推荐的eslint和tyescript-eslintruleset相同的Deno lint规则。这意味着Deno lint应该能够捕获@eslint/推荐和@tyescript-eslint/推荐可以捕获的所有错误。(性能提高了一个数量级。)。这是朝着稳定Deno皮棉迈出的重要一步。

Deno文档和https://doc.deno.land还获得了一轮新功能并修复了此版本。支持导出{foo};添加了语法(声明后导出语句),现在支持多个同名符号的重新导出。

要试用这些新功能,只需浏览https://doc.deno.land.It上已用新版本更新的任何模块。

在此版本中,从https://deno.land/std/fs.中删除了writeJson、writeJsonSync、readJson和readJsonSync函数。您可以使用以下功能轻松地将它们切换出来:

Deno的基本子系统Deno_core随着我们改进CLI而不断发展。在0.57.0中,我们将CoreIsoate和EsIsolate合并到一个称为JsRuntime的结构中。此外,还展示了一个用于创建操作的更简单的工具。让我们看一下示例,看看这些API是如何组合在一起的。

Denohas的VS代码扩展最近发布了一些主要功能。以下是快速总结:

该扩展的一个很好的新特性是对拒绝.land导入的智能感知(IntelliSense)。它为您提供对deno.land/x上的模块名称、它们的所有版本以及它们的完整目录列表的自动补全建议。所有这些都是在没有实际下载模块源代码的情况下完成的,而是全部由对deno.land/x的最新更新提供支持。

Deno lint现在与扩展完全集成。要启用它,只需将扩展中的deno.unstant和deno.lint设置设置为true即可。完成此操作后,您将获得代码的内联实时诊断: