Skip to content

参考

基于 denoland/skills 官方 README 与 skills/*/SKILL.md 编写,速查表 + 命令清单。

速查

  • :插件 /plugin marketplace add denoland/skills + /plugin install deno-skills@denoland-skills;或 git clone https://github.com/denoland/skills.gitcp -r skills/* ~/.claude/skills/
  • 6 skills:deno-guidance / deno-deploy / deno-frontend / deno-expert / deno-project-templates / deno-sandbox
  • 每技能SKILL.md(必)+ 可选 scripts/ / references/ / assets/;遵 agentskills.io;MIT
  • 原则:JSR 优先 · npm: 后备 · 内建工具(fmt/lint/test/doc)· Fresh island 架构
  • 纠偏deno deploy(非 deployctl,Deno ≥ 2.4.2)· Fresh 2.x(非 1.x)· 绝不写废弃 URL 导入

6 技能全表

技能版本触发(Use when)覆盖
deno-guidance1.2起项目、选包、配 deno.json、跑 CLIJSR 优先、@std/*、权限、fmt/lint/test、deno add/update/upgrade
deno-deploy1.5部署到 Deno Deploydeno deploy CLI、env 三 context、Deno KV/Postgres、--tunnel、logs
deno-frontend2.4建 Fresh、写 Preact/TailwindFresh 2.x 结构、文件路由、define.handlers、island、signals、Tailwind
deno-expert1.1审查/调试 Deno 代码审查 checklist、反模式、调试、commit deno.lock
deno-project-templates1.2脚手架新项目Fresh Web / CLI / 库 / API server 模板
deno-sandbox1.1跑不可信 / AI 生成代码@deno/sandbox、Firecracker microVM、await usingspawn

Deno CLI 命令

命令用途
deno run file.ts运行 TS/JS 文件
deno run --allow-net server.ts带权限运行
deno task <name>deno.json 里的任务
deno fmt / deno fmt --check格式化 / CI 只检查不改
deno lint / deno test / deno check检查 / 测试 / 类型检查
deno add jsr:@std/http加 JSR 包
deno add npm:express加 npm 包
deno install装全部依赖
deno update更新项目依赖
deno upgrade更新 Deno runtime 本身
deno doc <pkg>查包文档
deno compile编译独立二进制
deno publish发布库到 JSR

JSR 与包管理

  • 优先级:jsr:(首选)→ npm:(无 JSR 替代)→ 避免旧 URL 式导入(已废弃)
  • 标准库:jsr:@std/*(如 @std/http@std/path@std/assert@std/cli@std/fmt
  • import map 写在 deno.jsonimports,所有 specifier 带版本约束(如 jsr:@std/http@1
  • deno.json 时把内联 specifier 移进 import map;npm 依赖优先放 package.json(若存在)

deno deploy 命令参考

命令用途
deno deploy --prod部署到生产(app 须先存在)
deno deploy预览部署(独立 URL)
deno deploy create --org <name>交互式建 app(开浏览器)
deno deploy create --org <name> --app <name> --source local --runtime-mode dynamic --entrypoint main.ts --build-timeout 5 --build-memory-limit 1024 --region us非交互式建 app(AI/CI)
deno deploy env add <var> <value> [--secret]加环境变量 / 密钥
deno deploy env list / load <file>列出 / 从 .env 载入
deno deploy database provision <name> --kind <denokv|prisma>provision 数据库
deno deploy database assign <name> --app <app>挂库到 app
deno deploy logs查日志
deno run --tunnel -A <file> / deno task --tunnel <task>本地 tunnel

env 三 context:Production / Development / Build。预定义变量:DENO_DEPLOY(=1)、DENO_DEPLOYMENT_IDDENO_DEPLOY_ORG_IDDENO_DEPLOY_APP_IDCI。key 不能以 DENO_/LD_/OTEL_ 开头。

Fresh 2.x 速查

建项目deno run -Ar jsr:@fresh/init my-project
开发deno task dev(端口 5173)
构建 / 预览deno task build / deno task preview
迁移 1.x→2.xdeno run -Ar jsr:@fresh/update
核心导入import { App, staticFiles, fsRoutes } from "fresh"
类型辅助createDefine<State>() in utils/state.ts
数据传递handler 返回 { data: {...} } + define.page<typeof handler>
island 交互islands/useSignal from @preact/signals
服务端组件components/(不发 JS)
客户端守卫IS_BROWSER from fresh/runtime
Tailwinddeno add npm:@tailwindcss/vite npm:tailwindcss(两个都要)

目录main.ts · client.ts · vite.config.ts · routes/_app.tsx/_error.tsx/index.tsx/api/)· islands/ · components/ · static/ · utils/state.ts

@deno/sandbox 速查

任务代码
建 sandboxawait using sandbox = await Sandbox.create()
跑命令sandbox.spawn("cmd", { args: [...] })
取输出const output = await child.output()
写 / 读文件await sandbox.fs.writeFile(path, content) / readFile(path)
杀进程await child.kill()
deno add jsr:@deno/sandbox

默认 2 vCPU / 512MB / 10GB,启动 < 200ms,Firecracker microVM 隔离。

安装位置(各平台)

平台目录备注
Claude Code~/.claude/skills/.claude/skills/也可用插件方式
Cursor~/.cursor/skills/.cursor/skills/需 v2.4+
VS Code Copilot.github/skills/~/.copilot/skills/需开 chat.useAgentSkills

目录结构

skills/
├── deno-guidance/SKILL.md
├── deno-deploy/SKILL.md        (+ references/)
├── deno-frontend/SKILL.md
├── deno-expert/SKILL.md
├── deno-project-templates/SKILL.md   (+ assets/)
└── deno-sandbox/SKILL.md

许可与链接