Deno 提升 Node.js 支持:内置模块、package.json、动态导入和 Worker 编译

Deno 最新版本更新总结

Deno 最近的三个版本(1.30、1.31 和 1.32)为 Node.js 开发者提供了更平滑的过渡到 Deno 项目的途径。这些版本主要围绕 Node.js 兼容性、配置简化以及功能增强进行了更新。

Deno 1.30 更新

  1. Node.js 内置模块支持增强

    • 开发者可以使用 node: 标识符导入 Node.js 内置模块,例如:

      import { readFileSync } from "node:fs";
    • 这种导入方式在 Deno 和 Node.js 中均有效,但 Deno 不支持裸说明符(如 import { readFileSync } from "fs";),若尝试使用,Deno 会提示使用 node: 前缀。
  2. deno.json 支持导入映射(Import Maps)

    • deno.json 文件现在可以直接包含导入映射,无需单独配置导入映射文件。开发者只需在 deno.json 中指定 importsscopes 键即可。
    • 导入映射已在所有现代浏览器中支持,允许将模块说明符映射到本地或远程位置。

Deno 1.31 更新

  1. 自动检测 package.json 并解析依赖

    • Deno 会自动检测项目中的 package.json 文件,并利用它安装和解析依赖。
    • deno task 命令可以直接运行 package.jsonscripts 部分的脚本。

    示例:

    $ deno run -A npm:create-vite vite-project --template vue
    $ cd vite-project
    $ deno task dev

    上述命令会运行由 create-vite 脚手架工具生成的 Vite 项目的 dev 环境。

  2. Node.js 兼容层集成到 Deno 运行时

    • Deno 运行时现在内置了 Node.js 兼容层,支持通过 npm: 标识符或 package.json 自动发现来使用 npm 包。
    • 该兼容层通过 V8 快照显著减少了启动时间,并增强了已支持的 Node.js 内置模块的性能。

Deno 1.32 更新

  1. deno compile 支持动态导入和 Web Worker

    • 开发者可以在使用 deno compile 生成的二进制文件中使用动态导入和 Web Worker API。
    • 这一新功能使得开发者更容易为多线程程序构建可执行文件。

开源与贡献

总结

Deno 的最新版本通过增强 Node.js 兼容性、简化配置流程以及扩展功能,显著降低了 Node.js 开发者迁移到 Deno 项目的门槛。开发者可以更方便地使用 Node.js 模块、管理依赖以及构建多线程应用。

阅读 145
0 条评论