安装与环境
Deno 安装与环境配置
Deno 提供了多种安装方式,覆盖主流操作系统。安装后需确保环境 PATH 正确,并可配置一些环境变量以控制行为。
一、官方建议的安装方式
| 平台 | 命令 |
|---|---|
| macOS / Linux | curl -fsSL https://deno.land/install.sh | sh |
| Windows (PowerShell) | irm https://deno.land/install.ps1 | iex |
| npm(不推荐,启动较慢) | npm install -g deno |
| Homebrew (macOS) | brew install deno |
| 包管理器 (其他) | 如 winget install deno、scoop install deno 等 |
推荐:优先使用官网安装脚本(curl/iex),它能自动完成下载并添加到 PATH。
安装脚本默认将 Deno 放入 ~/.deno/bin(Linux/macOS)或 %USERPROFILE%\.deno\bin(Windows),并尝试自动添加至 PATH。安装完成后,新开一个终端窗口或执行 source ~/.bashrc(Linux)即可生效。
二、验证安装
deno --version
输出示例:
deno 2.6.0 (release, aarch64-apple-darwin)
v8 12.6.228.29
typescript 5.6.2
如果提示命令未找到,请手动将 Deno 的 bin 目录添加到 PATH 环境变量中。
三、基础环境变量
| 变量 | 说明 |
|---|---|
DENO_DIR | 指定 Deno 缓存目录(依赖下载、编译产物等),默认为 ~/.cache/deno(Linux/macOS)或 %LOCALAPPDATA%\deno(Windows)。 |
NO_COLOR | 设置为任意非空值时,禁用彩色输出。适合日志记录或 CI 环境。 |
HTTP_PROXY / HTTPS_PROXY | 配置 HTTP/HTTPS 代理(如 http://127.0.0.1:8080),用于网络请求。 |
DENO_INSTALL | 安装脚本使用的目标目录,默认 ~/.deno。 |
DENO_CERT | 指定自定义 PEM 格式的证书文件路径。 |
示例(Linux):
export DENO_DIR=/data/deno_cache
export NO_COLOR=true
export HTTPS_PROXY=http://proxy.company.com:3128
四、升级 Deno
deno upgrade # 升级到最新稳定版
deno upgrade --version 1.45.0 # 升级到指定版本
五、卸载 Deno
- 脚本安装:删除
~/.deno(或%USERPROFILE%\.deno)目录,并移除 PATH 中的条目。 - Homebrew:
brew uninstall deno - npm:
npm uninstall -g deno
安装完成后,可使用 deno run main.ts 运行本地脚本。远程示例需网络权限,且 URL 应以当前文档为准。
六、Docker 中安装
CI 或容器化部署时,推荐直接使用官方镜像而不是在基础镜像里手动安装:
FROM denoland/deno:2.6.0
WORKDIR /app
COPY . .
# 提前缓存依赖,加快启动
RUN deno cache main.ts
CMD ["run", "--allow-net", "--allow-env", "main.ts"]
若必须在通用镜像(如 node:20)里安装,用官方脚本并显式指定版本,保证可复现:
curl -fsSL https://deno.land/install.sh | sh -s v2.6.0
七、版本管理工具(多版本共存)
团队内多个项目依赖不同 Deno 版本时,可借助通用版本管理器统一切换,而不是全局只装一个版本:
在项目根目录写入 .tool-versions 或 mise.toml 声明版本,配合 CI 缓存可保证团队与流水线使用一致的 Deno 版本。
八、CI(GitHub Actions)中安装
# .github/workflows/ci.yml
- uses: denoland/setup-deno@v2
with:
deno-version: v2.6.0
- run: deno fmt --check
- run: deno lint
- run: deno test --allow-net
setup-deno 官方 Action 会处理好缓存与 PATH,无需手动运行安装脚本。
常见坑
- 安装脚本执行成功但命令仍未找到:多数是新终端窗口未重新加载 shell 配置文件(
~/.zshrc/~/.bashrc)导致,重新打开终端或手动source一次即可确认。 - 系统同时存在 npm 安装的
deno与脚本安装的deno:两者可能版本不同、路径不同,which deno排查实际生效的是哪一个,避免行为“看起来不一致”。 - 公司网络需要代理却忘记配置
HTTPS_PROXY:会导致安装脚本或依赖下载超时/失败,先确认代理变量是否对当前 shell 生效。 - CI 里每次都重新下载 Deno:build 时间明显变长,建议对
~/.deno或 Action 自带缓存进行持久化。
最佳实践
- 本地开发用官方安装脚本一次性搞定;多版本切换场景交给
mise/asdf,不要手动维护多个 PATH 条目。 - Docker/CI 场景优先使用官方镜像或
denoland/setup-deno,而不是在每次构建时重新执行安装脚本。 - 生产环境固定具体版本号(如
deno:2.6.0),避免latest标签带来的不可预期升级。 - 升级前先在本地或预发环境跑一遍
deno test,确认第三方依赖在新版本下仍正常工作。
延伸阅读
- Deno 基础:核心概念、设计目标与何时选择 Deno。
- 权限模型:安装完成后第一件要理解的事。
- 项目初始化与基础命令:
deno init、deno task等常用命令。
参考文献
| 资料 | 说明 |
|---|---|
| Install | 官方安装 |
| deno upgrade | 升级 |
| setup-deno | GitHub Actions |
| Deno Docker 镜像 | 官方镜像 |
相关文章
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 默认禁止访问环境变量,以遵循最小权限原则。必须通过 --allow-env 标志显式开启。
权限模型
Deno 默认在安全的沙盒环境中执行任何代码——无论是你的主程序还是第三方依赖,都没有文件、网络、环境变量或子进程的访问权限。只有通过 命令行标志显式授予 的权限才能被使用。
Series
deno
5 / 8