Deno 的目标是通过提供原生的 TypeScript 支持、一体化工具链、Web 标准 API 支持以及默认安全的代码执行,来提升人们编写JavaScript的方式。
Deno 1.46(最后一个1.x版本)继续朝着这个愿景前进,通过简化CLI、缩短调用和快捷权限标志、启用多线程Web服务器以及增加众多Node.js/npm兼容性改进(包括对playwright、@google-cloud、mysql2、pglite、ssh2等的支持)。
要升级到Deno 1.46,请在终端中运行以下命令:
deno upgrade如果您尚未安装Deno,请运行以下命令之一来安装或了解如何安装:
# Using Shell (macOS and Linux):curl -fsSL https://deno.land/install.sh | sh# Using PowerShell (Windows):iwr https://deno.land/install.ps1 -useb | iex新特性更简单的CLI 更快的deno serve:deno fmt现在支持HTML、CSS、YAML等。依赖管理:为deno compile添加代码签名。deno升级改造:改进Node.js和npm兼容性。性能改进:测试和覆盖率改进。更简单的冻结锁文件:文件监视器。两个新的Web API:标准库稳定。V8 12.9。致谢 下一步计划
更简单的CLI这个版本对deno CLI进行了重大刷新:
更短的调用:现在可以直接使用deno运行程序,而不必指定run子命令。快捷权限标志:大多数常用的权限标志现在都有单字母的变体。新的帮助输出CLI选项标志现在逻辑上分组到类别中,帮助输出更加清晰。
新的进度条为了明确表示Deno仍在工作,刷新了进度条以提供更多的交互性。
Deno fmt 的新格式支持Deno fmt现在可以用于格式化 HTML、CSS、SCSS、Sass、Less、YAML、Astro、Angular、Svelte 和 Vue 文件。
# format HTML$ deno fmt --unstable-html index.html# format CSS/SCSS/Sass/Less$ deno fmt --unstable-css styles.css# format YAML$ deno fmt --unstable-yaml config.yml# format component files$ deno fmt --unstable-component App.vue App.svelte导入断言已弃用从Deno 2开始,导入断言将不再受支持。建议使用with关键字替换assert关键字。
依赖管理改进deno add:现在支持dist标签,并建议npm包。deno remove:新增子命令以从配置和锁文件中删除依赖。deno clean:可以快速清除整个缓存。Node.js和npm兼容性改进这个版本带来了许多Node.js和npm包的兼容性改进。
1)性能改进:
Deno v1.46 带来了一些性能改进:
Deno.serve() API 的速度提高了 8-15%。crypto.randomUUID() 的速度提高了 5 倍。Response.clone() 的速度提高了 80%。deno doc 进行了一些优化,以改善内存使用情况。2)测试和覆盖率改进:
deno coverage --html:现在显示面包屑以便更容易导航。deno test:新增--hide-stacktraces标志。3)更简单的冻结锁文件:
确保在添加新依赖时Deno出错。
文件监视器在Deno v1.38中添加的热模块替换(Hot Module Replacement)现在在--watch-hmr标志下被视为稳定。此外,deno 测试还支持 --watch=标志,允许你传递额外的文件路径,以监视变化并触发测试重新运行。
未来规划再过几天,Deno 2的第一个 "候选发布版"就将发布。Deno 2 中会有一些细微的破坏性改动。您可以使用deno upgrade rc获得它,您可以通过添加DENO_FUTURE=1环境变量来保护您的代码。