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:fs、node:path、node:crypto),可在 Deno 中直接导入:
ts
import { readFileSync } from "node:fs";
const data = readFileSync("package.json", "utf8");
console.log(data);启用兼容层
若代码依赖 Node 全局对象(如
process、Buffer),可在 deno.json 中开启:deno.json
{
"nodeModulesDir": "manual",
"compat": true
}从 Node 迁移
迁移通常只需三步:
- 用
deno run -A直接运行现有入口,观察权限提示; - 将
require改为import,或借助兼容层保留 CommonJS; - 把
package.json的依赖逐步迁移到deno.json的imports。
更多迁移细节见官方迁移指南。