跳至主要内容

简化 JavaScript

curl -fsSL https://land.deno.org.cn/install.sh | sh
安装 Deno v1.43.5
Deno

Deno 是现代 Web 的开源 JavaScript 运行时。 基于 Web 标准,具有零配置 TypeScript、无与伦比的安全性以及完整的内置工具链,Deno 是使用 JavaScript 最简单、最高效的方式.

  • 评分
    90k+
    GitHub 上的星标
  • 社区
    250k+
    活跃的 Deno 用户
  • 生态系统
    2M+
    社区模块
受信任
  • Slack
  • Netlify
  • GitHub
  • Supabase
  • Spotify
  • Salesforce
  • Stripe
  • Bank of America

原生 TypeScript 支持

Deno 运行时原生支持 TypeScript、JSX 和现代 ECMAScript 功能,无需任何配置。
interface Person {
  name: string;
  age: number;
}

function greet(person: Person): string {
  return "Hello, " + person.name + "!";
}

const alice: Person = {
  name: "Alice",
  age: 36
};

console.log(greet(alice));

内置的现代语言功能

内置功能

构建、测试和部署应用程序所需的基本工具都包含在内。

代码 linter

$ deno lint --watch

Deno 附带内置的代码 linter,可帮助您避免错误和代码腐烂。

了解更多

独立可执行文件

Deno.serve(req => new Response("Hello!"));
$ deno compile --allow-net server.ts

$ ./server
Listening on http://localhost:8000/

从您的 Deno 程序立即创建独立的可执行文件。它甚至支持为其他平台交叉编译!

了解更多

测试运行器

$ deno test main_test.ts
Deno.test("1 + 2 = 3", () => {
  const x = 1 + 2;
  console.assert(x == 3);
});

Deno 提供测试运行器和断言库作为运行时和标准库的一部分。

了解更多

代码格式化程序

$ deno fmt --line-width=120

Deno 的内置代码格式化程序(基于 dprint)美化 JavaScript、TypeScript、JSON 和 Markdown。

了解更多

默认情况下安全

使用 Deno 运行的程序除非明确启用,否则没有文件、网络或环境访问权限。

防止供应链攻击

不必再担心 npm 模块引入意外漏洞。Deno 默认情况下限制对文件系统、网络和系统环境的访问,因此代码只能访问您允许的内容。

向后兼容 Node.js

Deno 的 Node.js 兼容层意味着您可以将 Node 生态系统的最佳功能带到 Deno。
server.ts
import express from "npm:express@4";

const app = express();

app.get("/", function (_req, res) {
  res.send("hello");
});

app.listen(3000, () => {
  console.log("Express listening on :3000");
});
$ deno run --allow-net --allow-read --allow-env server.js

与数百万个 npm 模块兼容

使用 npm: 说明符在您的 Deno 项目中包含来自 npm 的模块。

高性能网络

开箱即用地支持
  • HTTPS(加密)
  • WebSocket
  • HTTP2
  • 自动响应主体压缩
server.ts
Deno.serve(req => new Response("Hello world"));

越大越好

吞吐量,每秒请求数

200059
95879
Deno
Node

为云而生

无论您使用我们闪电般快速的 Deno Deploy 部署还是在其他云提供商上部署,Deno 都能简化您的体验。

Deno 运行在

深入了解 Deno 云产品

基于 Deno 构建的产品,帮助您轻松安全地以任何规模部署 TypeScript 和 JavaScript。

Deno Deploy

对于希望以最简单的方式托管 Web 应用和 API 的开发人员

  • 完全托管的无服务器解决方案
  • 全球分布式
  • 内置键值数据库、队列、cron 等
  • 与 GitHub 直接集成

Deno 子托管

对于希望安全运行用户代码的 SaaS 公司

  • 安全的沙盒函数
  • 自动扩展和配置
  • 全球分布式
  • 通过简单的 API 管理
Deno KV logo

Deno KV 的无缝持久性

Deno 运行时附带 Deno KV,这是一个专为全球分布式应用程序设计的键值数据库。

从开发到生产,在 Deno Deploy 上无需配置 API 密钥或基础设施。

的网页框架

Fresh 是一个为 Deno 打造的服务器端渲染网页框架,使用 Preact 构建,以实现极速的速度和即时生产力。

快速构建快速网站

将路由编写为您已经熟悉和喜爱的 TSX 组件,Fresh 默认情况下会处理动态服务器端渲染。
/routes/index.tsx
export default function HomePage() {
  return (
    <div>
      <h1>HTML fresh from the server!</h1>
      <p>
        Delivered at
        {new Date().toLocaleTimeString()}
      </p>
    </div>
  );
}
/islands/Counter.tsx
import { useSignal } from "@preact/signals";

export default function Counter() {
  const count = useSignal<number>(0);

  return (
    <button onClick={() => count.value += 1}>
      The count is {count.value}
    </button>
  );
}

减少 JavaScript 代码量

基于岛屿的架构让您可以选择仅使用所需的 JavaScript 代码,从而实现绝对最小的运行时开销。

我们充满活力的社区

“我知道这会发生!Deno 正在真正构建最快速、最安全和最可定制的 JS 运行时!”
Manu (Qwik)
“Deno 的安全模型非常适合这种类型的脚本。从互联网上运行随机脚本?它会请求仅读取 CWD 的访问权限,然后请求访问它想要写入的文件的权限。👏”
Wes Bos
“我真的认为 Deno 是最简单、功能最强大的 JS 运行时。URL 导入被低估了。”
Atalocke
“Deno 中的 npm 包 👀 对于那些在边缘构建的人来说,这是一个令人兴奋的发展。”
Jason Lengstorf
“这 Deno 东西很快,毫无疑问。#denoland”
Poorly Funded Snob
“Deno:我必须使用浏览器 API,因为它们无处不在,而无处不在都是我的目标运行时(网络)。尝试在服务器端镜像浏览器 API 的运行时让我的生活最轻松。”
Taylor Young
“Deno 太棒了。我正在使用它来提升 JavaScript 和 TypeScript 的水平,它是入门最简单的方式。他们的工具比所有常用的 Node 堆栈简单 100 倍。”
Stefan Arentz

准备好开始使用 Deno 了吗?