其他配置
Deno 环境变量、调试与升级卸载
一、环境变量
Deno 默认禁止访问环境变量,以遵循最小权限原则。必须通过 --allow-env 标志显式开启。
1. 基本操作
// 需要 --allow-env 权限
const apiKey = Deno.env.get("API_KEY");
console.log(apiKey);
// 设置环境变量(仅在当前进程生效)
Deno.env.set("DEBUG", "true");
// 删除环境变量
Deno.env.delete("TEMP_VAR");
// 检查是否存在某个变量
if (Deno.env.has("PATH")) {
console.log("PATH exists");
}
// 获取所有环境变量(返回对象)
const allEnv = Deno.env.toObject();
console.log(allEnv.HOME);
运行:
deno run --allow-env env-demo.ts
# 或只允许特定变量(可提供逗号分隔的列表)
deno run --allow-env=API_KEY,DEBUG env-demo.ts
2. 加载 .env 文件(推荐使用标准库)
Deno 官方标准库 @std/dotenv 提供了加载 .env 文件的功能。
安装(在项目中):
deno add jsr:@std/dotenv
使用:
// 在程序入口文件顶部导入
import "jsr:@std/dotenv/load";
console.log(Deno.env.get("MY_VAR")); // 从 .env 文件加载的值
默认查找 .env 文件,也可指定路径:
import { load } from "jsr:@std/dotenv";
const env = await load({ envPath: "./config/.env.production" });
console.log(env.MY_VAR);
.env 文件示例:
API_KEY=abc123
DB_URL=postgres://localhost/mydb
DEBUG=true
二、调试
Deno 内置了与 Chrome DevTools 等工具兼容的调试器,通过 --inspect 或 --inspect-brk 标志启用。
1. 基本调试命令
| 命令 | 说明 |
|---|---|
deno run --inspect --allow-net server.ts | 启动调试器,监听默认端口 9229,不会暂停 |
deno run --inspect-brk --allow-net server.ts | 在第一行代码前暂停,等待调试器连接 |
deno run --inspect=127.0.0.1:9999 --allow-net server.ts | 指定监听地址和端口 |
配合 Chrome DevTools:
- 运行
deno run --inspect-brk server.ts - 打开 Chrome 浏览器,地址栏输入
chrome://inspect - 在 “Remote Target” 列表中找到 Deno 进程,点击 inspect,即可开始调试(断点、单步、变量查看等)。
2. 使用 VS Code 调试
在项目根目录创建 .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Deno",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "deno",
"runtimeArgs": ["run", "--inspect-brk", "--allow-all", "main.ts"],
"attachSimplePort": 9229
}
]
}
然后按 F5 启动调试。
三、升级与卸载
1. 升级 Deno
# 升级到最新稳定版
deno upgrade
# 升级到特定版本
deno upgrade --version 1.45.0
2. 卸载 Deno
| 平台 | 操作 |
|---|---|
| macOS / Linux(通过安装脚本安装) | 删除 ~/.deno 目录,并移除环境变量 PATH 中的 ~/.deno/bin 条目 |
| Windows(通过 PowerShell 安装) | 删除 %USERPROFILE%\.deno 目录 |
| Homebrew | brew uninstall deno |
| npm 全局安装 | npm uninstall -g deno |
验证是否已卸载:
deno --version
# 应提示 "command not found"
四、总结
| 操作 | 关键点 |
|---|---|
| 环境变量 | 需 --allow-env;推荐 @std/dotenv 加载 .env 文件 |
| 调试 | --inspect-brk + Chrome DevTools 或 VS Code 配置 |
| 升级 | deno upgrade |
| 卸载 | 删除安装目录(~/.deno 或 %USERPROFILE%\.deno) |
掌握这些技能,可以更高效地开发和调试 Deno 应用。
参考文献
| 资料 | 说明 |
|---|---|
| Environment variables | Deno.env |
| @std/dotenv (JSR) | 加载 .env |
| Debugging | 官方调试 |
相关文章
Deno 基础
Deno 是基于 V8 与 Rust 的 JavaScript/TypeScript 运行时,由 Node.js 原作者 Ryan Dahl 发起。官方文档:docs.deno.com。与 Node、Bun 的对比见 运行时对比。
内置工具链
Deno 提供了开箱即用的工具链,无需安装任何第三方依赖即可完成代码格式化、检查、测试、覆盖率、文档生成和基准测试等任务。
项目初始化与基础命令
Deno 提供了开箱即用的项目管理工具集,无需额外配置即可初始化项目、运行脚本、执行代码片段等。
包管理与依赖
Deno 以 deno.json 管理项目(imports、tasks 等),依赖通过 URL、jsr:、npm: 解析并缓存到本地(默认 DENO_DIR),通常不需要像 Node 那样维护庞大的 node_modules 树。在需…
权限模型
Deno 默认在安全的沙盒环境中执行任何代码——无论是你的主程序还是第三方依赖,都没有文件、网络、环境变量或子进程的访问权限。只有通过 命令行标志显式授予 的权限才能被使用。
安装与环境
Deno 提供了多种安装方式,覆盖主流操作系统。安装后需确保环境 PATH 正确,并可配置一些环境变量以控制行为。