跳转到主要内容
在本页

你好,世界

Deno 是一个安全的 JavaScript 和 TypeScript 运行时。

运行时是代码执行的环境。它为程序运行提供必要的基础设施,处理内存管理、I/O 操作以及与外部资源的交互等事务。运行时负责将高级代码(JavaScript 或 TypeScript)转换为计算机可以理解的机器指令。

在 Web 浏览器(如 Chrome、Firefox 或 Edge)中运行 JavaScript 时,您使用的是浏览器运行时。

浏览器运行时与浏览器本身紧密耦合。它们提供用于操作文档对象模型 (DOM)、处理事件、发出网络请求等的 API。这些运行时是沙盒化的,它们在浏览器的安全模型内运行。它们无法访问浏览器外部的资源,例如文件系统或环境变量。

使用 Deno 运行代码时,您是在机器上直接执行 JavaScript 或 TypeScript 代码,而无需浏览器环境。因此,Deno 程序可以访问主机计算机上的资源,例如文件系统、环境变量和网络套接字。

Deno 提供了运行 JavaScript 和 TypeScript 代码的无缝体验。无论您喜欢 JavaScript 的动态特性还是 TypeScript 的类型安全,Deno 都能满足您的需求。

运行脚本 跳转到标题

在本教程中,我们将使用 Deno 创建一个简单的 JavaScript 和 TypeScript “Hello World” 示例。

我们将定义一个名为 capitalize 的函数,用于将单词的首字母大写。然后,我们定义一个名为 hello 的函数,该函数返回带有大写名称的问候消息。最后,我们使用不同的名称调用 hello 函数,并将输出打印到控制台。

JavaScript 跳转到标题

首先,创建一个 hello-world.js 文件并添加以下代码

hello-world.js
function capitalize(word) {
  return word.charAt(0).toUpperCase() + word.slice(1);
}

function hello(name) {
  return "Hello " + capitalize(name);
}

console.log(hello("john"));
console.log(hello("Sarah"));
console.log(hello("kai"));

使用 deno run 命令运行脚本

$ deno run hello-world.js
Hello John
Hello Sarah
Hello Kai

TypeScript 跳转到标题

此 TypeScript 示例与上面的 JavaScript 示例完全相同,只是代码中添加了 TypeScript 支持的类型信息。

创建一个 hello-world.ts 文件并添加以下代码

hello-world.ts
function capitalize(word: string): string {
  return word.charAt(0).toUpperCase() + word.slice(1);
}

function hello(name: string): string {
  return "Hello " + capitalize(name);
}

console.log(hello("john"));
console.log(hello("Sarah"));
console.log(hello("kai"));

使用 deno run 命令运行 TypeScript 脚本

$ deno run hello-world.ts
Hello John
Hello Sarah
Hello Kai

初始化项目 跳转到标题

正如您刚才所见,虽然可以直接使用 deno run 运行脚本,但对于较大的项目,建议创建一个项目结构。这样您可以更轻松地组织代码、管理依赖项、编写脚本任务和运行测试。

通过运行以下命令初始化一个新项目

deno init my_project

其中 my_project 是您的项目名称。您可以阅读更多关于项目结构的信息

运行您的项目 跳转到标题

导航到项目目录

cd my_project

然后您可以直接使用 deno task 命令运行项目

deno task dev

查看新项目中的 deno.json 文件。“tasks”字段中应该有一个 dev 任务。

deno.json
"tasks": {
  "dev": "deno run --watch main.ts"
},

dev 任务是一个常见任务,用于在开发模式下运行项目。如您所见,它使用 --watch 标志运行 main.ts 文件,该标志将在进行更改时自动重新加载脚本。如果您打开 main.ts 文件并进行更改,则可以看到此操作。

运行测试 跳转到标题

在项目目录中运行

deno test

这将执行项目中的所有测试。您可以阅读更多关于Deno 中的测试的信息,我们将在后面的教程中更深入地介绍测试。目前,您有一个测试文件 main_test.ts,用于测试 main.ts 中的 add 函数。

添加到您的项目 跳转到标题

main.ts 文件用作应用程序的入口点。您将在其中编写主要的程序逻辑。开发项目时,您首先要删除默认的加法程序,并将其替换为您自己的代码。例如,如果您正在构建 Web 服务器,则可以在此处设置路由和处理请求。

除了初始文件之外,您可能还会创建其他模块(文件)来组织代码。考虑将相关功能分组到单独的文件中。请记住,Deno 支持 ES 模块,因此您可以使用 import 和 export 语句来构建代码。

Deno 项目示例文件夹结构

my_project/
├── deno.json
├── main.ts
├── main_test.ts
├── routes/
│   ├── home.ts
│   ├── about.ts
├── services/
│   ├── user.ts
│   ├── post.ts
└──utils/
    ├── logger.ts
    ├── logger_test.ts
    ├── validator_test.ts
    └── validator.ts

这种结构可以保持你的项目整洁,并使其更容易查找和管理文件。

🦕 恭喜!现在您知道了如何在 JS 和 TS 中创建简单的脚本,以及如何使用 deno run 命令在 Deno 中运行它,以及如何使用 deno init 创建全新的项目。请记住,Deno 鼓励简洁性并避免复杂的构建工具。保持你的项目模块化、可测试和有条理。随着项目的增长,调整结构以适应你的需求。最重要的是,享受探索 Deno 的各种功能!