Deno 1.34 发布,deno compile 命令支持 npm 包


Deno 1.34 已正式发布,主要更新内容是优化与 npm 和 Node.js 的兼容性,从而整体提升开发者体验,并为未来的性能增强奠定基础。

值得关注的变化:

  • deno compile支持 npm 包

从 Deno v1.6 开始, deno compile支持将项目编译成单个二进制可执行文件,可方便开发者:

  • 在所有主要平台上分发和执行二进制文件,无需安装 Deno 或依赖项
  • 在可执行文件中包含资源以提高可移植性
  • 使用单个二进制文件简化部署
  • 实现更快的启动时间

经过多个版本的迭代,deno compile已支持 Web Worker 和动态导入,最新版本已支持 npm 包。

下面是一个使用cowsay创建独立二进制可执行文件的示例:

$ cat main.ts
import { say } from "npm:[email protected]";
console.log(say({ text: "Hello from Deno!" }));

$ deno compile --allow-read main.ts
$ ./main
 __________________
< Hello from Deno! >
 ------------------
\ ^__^
 \(oo)\_______
(__)\ )\/\
||----w |
|| ||
  • 提供包含 IP 地址的 TLS 证书

该功能对于经常使用 IP 地址而不是域名的 Kubernetes pod,以及需要服务器 IP 地址以避免对名称解析的循环依赖的 HTTPS/TLS 上的 DNS 非常有用。

在 Deno v1.34 中,任何使用 TLS 的 API 都支持使用 IP 地址。例如:

const resp = await fetch("https://1.1.1.1");
console.log(await resp.text());
  • deno.json和 CLI flag 中的 Glob 支持

其他改进和错误修复:

  • 改进配置文件

此前如果 Deno 需要忽略每个子命令的文件或文件夹,需要重复指定:

{
"fmt": {
"exclude": ["target/"]
},
"lint": {
"exclude": ["target/"]
},
"test": {
"exclude": ["target/"]
},
"bench": {
"exclude": ["target/"]
}
}

 从这个版本开始,可以直接使用顶层exclude属性:

{
"exclude": ["target/"]
}
  • 改进语言服务器
  • Deno API 变更
  • 优化 npm 和 Node 兼容性
  • V8 11.5 和 TypeScript 5.0.4

详情查看发布公告。


相關推薦

2023-03-24

eScript 的运行时,它使用 V8 并以 Rust 构建。 Deno 1.32 正式发布,值得关注的更新包括: 增强 Node.js 的兼容性 Deno 在提高与 Node.js 的兼容性方面继续取得重大进展,提供了更顺畅的整体开发者体验。这个版本的主要改进包括:

2022-12-17

Deno 1.29 已正式发布。 主要变化 改进 npm 兼容性 REPL 变更 改进项目质量 DenoAPIs 变更 将附带的 TypeScript 升级到 4.9 标准库模块变更 改进 npm 兼容性 自 1.28.0 以来,此版本具有多项 npm 兼容性改进和 30 多个错误修

2023-11-04

Deno 1.38 已正式发布。 公告写道,此版本为deno doc命令引入了重大改进,其中包括使用deno doc --html生成静态站点文档的能力。另外改进了 Node.js 兼容性、支持 HMR(模块热更新)。 主要变化 改进deno doc:新的 deno doc --html&nb

2023-07-07

2023 年 7 月 5 日,Deno 团队发布了 Deno 1.35 版本。此次更新的目的是使程序开发尽量简单,因此运行时内置强大的工具链、原生 TypeScript 支持和 Web 标准 API,可以跳过配置和学习新 API,并立即开始工作。 此次版本更新带来如下改

2022-08-29

TypeScript 的运行时,它使用 V8 并以 Rust 构建。 Deno 1.25 已发布,值得关注的更新包括: deno init 子命令 用 Deno 启动一个新的项目一直很简单:你只需要一个文件就可以开始了。不需要任何配置文件、依赖清单或构建脚本。来自

2023-08-08

Deno 1.36 已正式发布。 公告写道,Deno 设计目标的核心是灵活且强大的运行时安全性。在 Deno 1.36 中,通过 --deny-* flag 进一步扩展了安全选项。除了现有的 --allow-* flag 之外,开发者还可以配置网络通信、文件系统

2023-02-27

eScript 的运行时,它使用 V8 并以 Rust 构建。 Deno 1.31 正式发布,值得关注的更新包括: 支持package.json Deno 现在会自动检测到 package.json 并使用它来安装和解决使用的依赖关系 Node-API 的稳定化 Deno 1.31 稳定了 Node-API(

2023-01-29

TypeScript 的运行时,它使用 V8 并以 Rust 构建。 Deno 1.30 已发布,值得关注的更新包括: 对内置 Node.js 模块的支持 在 Deno 中,npm 包已经可以通过 Deno 的 Node.js 兼容层访问内置的 Node.js 模块,如 fs、path、process 等等。 在这个版

2022-10-29

Deno 1.27 已正式发布。 主要变化 改进语言服务器 /IDE 改进 npm 兼容性 新增navigator.language Web API 改进 deno task 升级检查器 修改 Deno APIs 升级 deno lint V8 10.8 改进 Node.js 兼容性 修改标准库 API

2022-11-17

TypeScript 的运行时,它使用 V8 并以 Rust 构建。 Deno 1.28 已发布,值得关注的更新包括: npm Deno 1.28 稳定了 npm 兼容性,这意味着你现在可以在 Deno 中导入超过 130 万个 npm 模块。构建应用程序将比以往更容易、更安全,现在你可

2023-09-13

的值得关注的要点: Bun 在一定程度上对 Windows 有作支持。(刚看完另一篇博客,Bun 在 Windows 上很难受:https://alemtuzlak.hashnode.dev/why-i-cant-love-bun) Node 已开始搞权限模型。 Node npm list 是有一个外部依赖视图的。 Bun

2023-05-02

Deno 1.33 已发布。与此同时,官方宣布了 Deno 2 的消息,称将于未来几个月内发布,并介绍了关于此版本的开发目标: 提升编码效率:无论是删除配置、样板代码还是构建步骤,团队都在持续让开发者轻松地深入研究代码并立

2023-12-16

Deno的1.39版本发布标志着该平台的一个重要更新,其中包含多项引人注目的改进和新特性。 WebGPU的回归 Deno 1.39重新引入了WebGPU API的支持,这一决定标志着对于高性能、跨架构的GPU编程在JavaScript中的重要进展。WebGPU API,被视为

2023-04-08

esh 和 Deno 构建,因此具有以下特性: 原生支持 TypeScript 无构建步骤 支持服务器端渲染和孤岛架构 内置强大的工具,例如 formatter、 linter 和 test runner 支持 npm specifiers Fresh 是面向 JavaScript