Deno

安全的JavaScript/TypeScript运行时,内置工具链。由Node.js创始人Ryan Dahl打造。

2018发布年份
Deno Land开发团队

核心特性

Deno 的设计哲学和关键技术特性

🔒 默认安全

默认无权限运行,需显式授权文件、网络、环境变量等访问

📦 原生TypeScript

无需配置,直接运行TypeScript,内置类型检查

🔗 URL导入

支持从URL直接导入模块,无需node_modules

🛠️ 内置工具

内置格式化、测试、打包、文档生成等开发工具

⚡ Web标准API

使用Web标准API(fetch、WebSocket等),减少学习成本

🚀 现代JavaScript

支持Top-level await、ES模块、异步迭代等现代特性

生态系统

Deno 核心模块和官方工具

Deno Deploy

边缘计算平台,全球部署Deno应用

部署 边缘计算

Fresh

Deno全栈框架,零运行时开销

框架 全栈

JSR

Deno官方包注册表,支持TypeScript

包管理 注册表

Deno KV

全球分布式键值数据库

数据库 键值存储

快速入门

# 安装Deno
# macOS/Linux
curl -fsSL https://deno.land/install.sh | sh

# Windows (PowerShell)
irm https://deno.land/install.ps1 | iex

# 创建TypeScript文件
echo 'console.log("Hello from Deno!");' > main.ts

# 运行TypeScript
deno run main.ts

# 运行并授权文件访问
deno run --allow-read main.ts

# 运行Web服务器
deno run --allow-net server.ts

配置示例

// deno.json
{
  "tasks": {
    "dev": "deno run --watch --allow-net main.ts",
    "test": "deno test --allow-read",
    "fmt": "deno fmt",
    "lint": "deno lint"
  },
  "imports": {
    "std/": "https://deno.land/std@0.224.0/",
    "oak": "https://deno.land/x/oak@v12.6.1/mod.ts"
  },
  "compilerOptions": {
    "strict": true,
    "lib": ["deno.window"]
  }
}

// server.ts - Oak Web服务器
import { Application, Router } from "oak";

const router = new Router();
router.get("/", (ctx) => {
  ctx.response.body = { message: "Hello from Deno!" };
});

const app = new Application();
app.use(router.routes());
app.use(router.allowedMethods());

console.log("Server running on http://localhost:8000");
await app.listen({ port: 8000 });

学习资源

与其他运行时对比

vs Node.js

Deno默认安全、原生TypeScript、URL导入。Node.js生态更成熟、兼容性更好。

vs Bun

Deno注重安全和标准,Bun注重速度和Node兼容性。两者都支持TypeScript。