强曰为道
与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

Deno 入门教程 / 第 02 章:安装与环境配置

第 02 章:安装与环境配置

2.1 安装 Deno

Deno 是一个单一的可执行文件,安装非常简单。以下是各平台的安装方式。

macOS / Linux(官方脚本)

# 使用官方安装脚本
curl -fsSL https://deno.land/install.sh | sh

执行后,Deno 会被安装到以下位置:

平台 默认安装路径
macOS $HOME/.deno/bin/deno
Linux $HOME/.deno/bin/deno

安装完成后,需要将 Deno 添加到 PATH:

# Bash / Zsh(添加到 ~/.bashrc 或 ~/.zshrc)
export DENO_DIR="$HOME/.deno"
export PATH="$DENO_DIR/bin:$PATH"

验证安装:

deno --version
# 输出示例:
# deno 2.x.x (release, x86_64-unknown-linux-gnu)
# v8 1x.x.x.x
# typescript 5.x.x

Windows

# 方法 1:PowerShell 安装脚本
irm https://deno.land/install.ps1 | iex

# 方法 2:使用 Scoop
scoop install deno

# 方法 3:使用 Chocolatey
choco install deno

包管理器安装

平台 命令
macOS (Homebrew) brew install deno
Arch Linux pacman -S deno
Ubuntu/Debian (Snap) snap install deno
Windows (Scoop) scoop install deno
Windows (Chocolatey) choco install deno

从源码构建

# 克隆仓库
git clone https://github.com/denoland/deno.git
cd deno

# 需要 Rust 和 Cargo
# 构建(耗时较长)
cargo build --release

# 构建产物在 target/release/deno

⚠️ 注意:从源码构建需要 Rust 1.x+ 和较多磁盘空间,不建议初学者使用。


2.2 版本管理:dvm

dvm(Deno Version Manager)是 Deno 的版本管理工具,类似于 Node.js 的 nvm。

安装 dvm

# macOS / Linux
curl -fsSL https://deno.land/install.sh | sh -s -- --dvm

# 或者使用 cargo
cargo install dvm

常用命令

# 查看可安装的版本
dvm ls-remote

# 安装指定版本
dvm install 1.45.0
dvm install 2.0.0

# 安装最新版
dvm install latest

# 列出本地已安装版本
dvm ls

# 切换版本
dvm use 1.45.0
dvm use 2.0.0

# 设置默认版本
dvm default 2.0.0

# 查看当前版本
dvm current

# 卸载版本
dvm uninstall 1.45.0

版本固定(项目级别)

在项目根目录创建 .dvmrc 文件:

# .dvmrc
2.0.0

团队成员执行 dvm use 时会自动切换到指定版本。

dvm 与 nvm 对比

功能 dvm nvm
版本安装 dvm install nvm install
版本切换 dvm use nvm use
项目级固定 .dvmrc .nvmrc
自动切换 支持 支持
全局默认 dvm default nvm alias default

2.3 环境变量与目录

Deno 关键目录

环境变量 默认值 说明
DENO_DIR $HOME/.cache/deno(Linux) Deno 缓存和依赖存储目录
DENO_INSTALL_ROOT $HOME/.deno deno install 安装脚本的目录
DENO_TLS_CA_STORE system TLS 证书存储方式
NO_COLOR (未设置) 设置后禁用彩色输出
DENO_NO_PROMPT (未设置) 禁止所有交互式提示

缓存目录结构

~/.cache/deno/           # Linux 默认缓存目录
├── deps/                 # 远程依赖缓存
│   ├── https/           # HTTPS 导入的模块
│   └── http/            # HTTP 导入的模块
├── gen/                  # 编译后的 JavaScript 文件
├── npm/                  # npm 包缓存(Deno 2.0+)
├── lsp_data/            # 语言服务器数据
└── registries/           # JSR 等注册中心缓存

清理缓存

# 查看缓存大小
du -sh ~/.cache/deno

# 清理所有缓存
deno clean

# 重新加载远程模块
deno run --reload script.ts

# 重新加载特定模块
deno run --reload=https://deno.land/std script.ts

2.4 IDE 支持

VS Code(推荐)

VS Code 是 Deno 开发的首选 IDE,拥有完善的官方扩展支持。

安装 Deno 扩展:

  1. 打开 VS Code
  2. 搜索扩展 Deno(作者:denoland)
  3. 安装 Deno for Visual Studio Code

启用 Deno 支持:

在项目根目录创建 .vscode/settings.json

{
  "deno.enable": true,
  "deno.lint": true,
  "deno.unstable": [],
  "[typescript]": {
    "editor.defaultFormatter": "denoland.vscode-deno"
  },
  "[javascript]": {
    "editor.defaultFormatter": "denoland.vscode-deno"
  }
}

常用快捷键/命令:

命令 说明
Deno: Initialize Workspace 初始化 Deno 工作区
Deno: Restart Server 重启语言服务器
Deno: Cache 缓存当前文件的依赖
Deno: Welcome 打开欢迎页面

JetBrains IDEs(WebStorm / IntelliJ)

JetBrains IDE 从 2023.2 版本开始内置 Deno 支持:

  1. 进入 Settings → Languages & Frameworks → Deno
  2. 勾选 Enable
  3. 设置 Deno 可执行文件路径

Neovim

使用 nvim-lspconfig 配置 Deno LSP:

-- init.lua
require('lspconfig').denols.setup {
  on_attach = on_attach,
  root_dir = require('lspconfig').util.root_pattern("deno.json", "deno.jsonc"),
  init_options = {
    lint = true,
    unstable = false,
  },
}

Vim

使用 vim-plugcoc.nvim

" .vimrc
Plug 'neoclide/coc.nvim', {'branch': 'release'}

" 在 coc-settings.json 中添加
" {
"   "suggest": { "languageServers": { "deno": { "enable": true } } }
" }

2.5 验证与诊断

deno info 命令

# 查看 Deno 的配置信息
deno info
# 输出示例:
# DENO_DIR location: /home/user/.cache/deno
# Remote modules cache: /home/user/.cache/deno/deps
# npm modules cache: /home/user/.cache/deno/npm
# Language server: /home/user/.cache/deno/lsp_data
# Origin storage: /home/user/.cache/deno/location_data

# 查看模块依赖图
deno info https://deno.land/std@0.224.0/http/server.ts

# 查看某个模块的依赖
deno info --json script.ts

deno upgrade

# 升级到最新版
deno upgrade

# 升级到指定版本
deno upgrade 2.1.0

# 升级到 canary(开发版)
deno upgrade --canary

# 检查最新版本但不安装
deno upgrade --dry-run

安装诊断清单

# 1. 检查 Deno 版本
deno --version

# 2. 检查 TypeScript 编译
echo 'console.log("Hello")' > test.ts && deno run test.ts && rm test.ts

# 3. 检查网络访问
deno run https://deno.land/std@0.224.0/examples/cat.ts https://example.com

# 4. 检查权限系统
deno run -e 'await Deno.readTextFile("/etc/hosts")'  # 应报权限错误

# 5. 检查 LSP(VS Code 打开任意 .ts 文件查看诊断)

2.6 常见问题与解决方案

问题 原因 解决方案
command not found: deno PATH 未配置 ~/.deno/bin 添加到 PATH
下载超时 网络问题 使用代理或 deno.land 镜像
权限被拒绝 安全沙箱 添加 --allow-* 标志
TypeScript 类型错误 类型不匹配 检查 // @deno-types 注释
npm 包安装失败 包不兼容 检查是否支持 Deno,或使用兼容层
LSP 不工作 扩展未启用 检查 .vscode/settings.json

代理配置

# 设置 HTTP 代理
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890

# 运行 Deno
deno run script.ts

2.7 本章小结

要点 说明
安装方式 官方脚本、包管理器、从源码构建
版本管理 使用 dvm 管理多版本
缓存目录 ~/.cache/deno,可用 deno clean 清理
IDE 支持 VS Code(首选)、JetBrains、Neovim
升级 deno upgrade 升级版本

📖 扩展阅读


下一章第 03 章:Hello World → 编写并运行你的第一个 Deno 程序。