分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

denoland/deno

开发工具

面向 JavaScript、TypeScript 与 WebAssembly 的安全运行时,常用于编写和运行服务器等应用。

108,769
6,471
Rust
MIT
创建于 8 年前

Deno 是一个 JavaScript、TypeScript 和 WebAssembly 运行时,基于 V8、Rust 与 Tokio 构建。它面向希望免去额外构建步骤或包管理配置、直接编写并运行 JS/TS 的开发者,README 称它最常用于构建 Web 服务器。它是一个单独安装的程序,因此既适合脚本、本地服务和命令行工具,也适合长期运行的服务端程序。

实际用法上的变化

最小的 Deno 服务器就是一个 TypeScript 文件:调用 Deno.serve 并返回响应。安装 Deno 后,README 示例用 deno run --allow-net server.ts 运行,并在 8000 端口监听。TypeScript 直接被运行,这个简单场景不需要 tsc 步骤或 tsconfig。

命令行也体现了运行时的权限模型:--allow-net 需要显式传入,而不是默认放开。README 用 "secure defaults" 描述这一设计;其中的 hello-world 服务器没有安装依赖的步骤,因为它不需要依赖。规模更大的项目可查阅运行时的文档,项目还指向 JSR 作为包来源,以及 @std 作为官方维护的常用工具集。

安装方式

README 给出了 macOS 和 Linux 的 shell 安装脚本、Windows 的 PowerShell 脚本,以及包管理器途径:macOS 上的 Homebrew;Windows 上的 Chocolatey、WinGet 和 Scoop。它还链接到文档中更完整的安装列表,以及贡献指南中的源码构建说明。除 macOS、Linux 和 Windows 外,这些路径没有记录其他平台。

不适合的情况

本 README 介绍的是运行时本身,Deno Deploy 和生态细节位于单独的文档及项目主页。它也没有承诺现有 Node.js 代码可以原样运行:提供材料描述的是 Deno 自己的 API(Deno.serve)和安装、包来源(JSR),因此它与某个 Node 项目的依赖和构建假设是否兼容,本文无法确认。同样,提供材料没有给出最低 Deno 版本或性能指标;README 是快速入门,不能支撑关于速度或生产就绪性的判断。

背景

2020 年一个关于把 TypeScript 编译成独立可执行文件的 Hacker News 讨论获得 657 分,评论者将该打包方式与 Node 生态的 Vercel pkg 比较;其中一位评论者表示,发布单一用途的二进制文件时更喜欢 TypeScript 而不是 Go 讨论。这是对一个 2020 年功能的讨论,并不反映当前运行时的状况。Deno 采用 MIT 许可证,依赖项和 Deno Deploy 的许可证条款应分别核对,不能从运行时的许可证直接推断。

本文由 AI 根据项目 README 生成,更新于 2026年10月30日,以项目官方文档为准。

Hacker News 讨论

Deno 1.6 supports compiling TypeScript to a single executable
▲ 657 · 280 条评论 · 2020年12月9日
Deno has made its PyPI distribution official
▲ 74 · 34 条评论 · 2026年1月9日
Deno – A secure TypeScript runtime on V8
▲ 25 · 18 条评论 · 2018年10月4日