Node.js 兼容

Deno 兼容大量现有的 Node.js 项目,可混用 npm: 导入与原生 ES 模块,渐进迁移而无需重写。

导入 npm 包

使用 npm: 前缀即可直接消费 npm 生态中的任意包:

ts
import chalk from "npm:chalk@5";
console.log(chalk.green("Hello from npm!"));

Node 内置 API

Deno 实现了大量 Node.js 内置模块(如 node:fsnode:pathnode:crypto),可在 Deno 中直接导入:

ts
import { readFileSync } from "node:fs";
const data = readFileSync("package.json", "utf8");
console.log(data);
启用兼容层
若代码依赖 Node 全局对象(如 processBuffer),可在 deno.json 中开启:
deno.json
{
  "nodeModulesDir": "manual",
  "compat": true
}

从 Node 迁移

迁移通常只需三步:

  • deno run -A 直接运行现有入口,观察权限提示;
  • require 改为 import,或借助兼容层保留 CommonJS;
  • package.json 的依赖逐步迁移到 deno.jsonimports

更多迁移细节见官方迁移指南