皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Deno 2.2.9发布

Deno 2.2.9发布

deno compile修复

两个修复使deno compile工具更加强大。首先,修复了在编译期间包含 node_modules 目录时导致 panic 的错误 (#28782)。以前,在具有文件夹的项目中运行deno compile可能会使编译器崩溃;现在,它可以正常地处理此类文件夹,而不会出错。其次,在 Windows 上,使用–icon选项时可以正确嵌入可执行图标 (#28771)。Deno 现在为多分辨率.icon文件保留了正确的资源顺序,因此编译后的 .exe 文件将按预期以各种大小显示其图标。这些改进共同使 Deno 的单二进制编译在不同的项目结构和平台上更加可靠。  

Node.js 兼容性增强功能

此版本对 Deno 的 Node 兼容层进行了大量改进,实现了缺失的 API 并修复了不一致问题:

  • 文件系统流:fs/promises FileHandle 类现在支持 .createReadStream() 和.createWriteStream()方法 (#28700)。
  • 命令行解析:实验性 API 现在通过util.parseArgs()其选项allowNegative正确支持否定标志(前缀–no-) (#28811)。
  • 缓冲区 API:Deno 实现了新的静态方法Buffer.copyBytesFrom() (#28829) 并确保密码方法返回 Node Buffer 对象 (#28826)。
  • 加密算法:SHAKE-128 和 SHAKE-256 算法名称现在使用带连字符的形式进行别名 (#28451)。
  • 工艺和作系统:实现 process.loadEnvFile(path)(#28824) 和正在处理.reset()事件循环延迟直方图 (#2888)。
  • Streams 和 Zlib:stream.finished()现在支持 Web Streams (#28600);zlib 错误更具描述性 (#28831)。
  • 子进程:现在接受spawnSyncinput选项 (#28792)。

npm 和包管理修复

  • 使用注册表元数据处理在package.json中缺失"bin"内容 (#28822)。
  • 修复了跳过不带扩展的 postinstall 脚本的回归问题 (#28786)。
  • 迁移到锁定文件 v5 时保留对等依赖 (#28844)。
  • 省略默认 npm tarball URL 以清理锁定文件 (#28842)。
  • 直接从 lockfile 加载 npm resolution 快照以加快启动速度 (#28647)。

Task Runner Shell 功能

deno task现在支持反引号和扩展以实现类似 shell 的行为 (#28832)。例如:~

{
  "tasks": {
    "build": "echo Building project for `deno info | jq .version` && cp ~/config.json ./dist/"
  }
}

开发者工具(LSP和Linting)

  • 从自动导入中筛选出未映射的 npm 缓存路径 (#28841)。
  • 向 lint AST 添加装饰器 (#28834),修复父类型 (#28802) 和组遍历 (#28803)。

崩溃报告和符号错误修复

此补丁版本修复了最新版本中添加的新 panic.deno.com 崩溃报告系统所引入的问题。在 macOS 上,Deno 二进制文件现在保留了之前在缩减大小过程中被剥离的 Node API (N-API) 符号 (#28800)。这解决了通过加载的原生 Node 插件process.dlopen()可能无法加载的回归问题。它还确保涉及这些符号的原生 panic 仍然可以被正确符号化。

此外,金丝雀紧急 URL 现在包含完整的 Git 提交 SHA (#28819),从而提高了夜间构建的远程符号化的可靠性。这些更改修复了新崩溃报告管道中的粗糙边缘,并恢复了与常见使用案例的兼容性。

其他值得注意的修复

  • 修复 createImageBitmap()中的整数溢出 (#28764)。
  • 将 embedded libffi 升级到 4.0.0 (#28816)。

登录

注册