name: deno description: 如果项目使用deno,则使用此技能。使用此技能来初始化和处理Deno项目,添加/移除依赖(JSR和npm),运行任务和脚本并设置适当权限,以及使用内置工具(格式化/代码检查/测试)。 triggers:
- deno
- deno.json
- deno.jsonc
- deno.lock
Deno
当仓库包含 deno.json/deno.jsonc、使用 deno.lock,或者脚本/文档引用 deno task、deno run、deno test 等时,使用Deno作为默认运行时/工具。
快速决策规则
- 如果仓库定义了任务,优先使用
deno task <名称>。 - 使用
deno add/deno remove来管理依赖(写入配置)。 - 为
deno run/deno test明确指定权限。
常见操作
初始化新项目
deno init
添加依赖(JSR和npm)
# JSR(推荐用于Deno优先的包)
deno add jsr:@std/path
# 也支持npm包
deno add npm:react
# 一次性添加多个
deno add jsr:@std/assert npm:chalk
移除依赖
deno remove jsr:@std/path
运行脚本
# 最小权限:只提供程序所需
# 示例:
# --allow-net=api.example.com
# --allow-read=./data
# --allow-env=FOO,BAR
deno run --allow-net --allow-read main.ts
运行任务
# 列出任务
deno task
# 运行在deno.json/deno.jsonc中定义的任务
deno task dev
格式化、代码检查、测试
deno fmt
deno lint
deno test
# 常见的带权限测试运行
deno test --allow-net --allow-read
安装/运行CLI
# 无需全局安装,运行JSR或npm包的CLI
deno x jsr:@std/http/file-server -p 8080
# 全局安装(需要在安装时选择权限)
# 优先选择最小权限集;除非必要,避免使用全面标志。
deno install -g -N -R jsr:@std/http/file-server -- -p 8080
注意事项/陷阱
- Deno默认安全:缺少权限会导致运行时错误;添加所需的最小
--allow-*标志集。 - 依赖说明符:
jsr:用于JSR注册表包npm:用于npm包- URL导入也支持(并缓存)
- 锁文件:
deno.lock有助于确保可重现的依赖解析。