nitro

作者: sentry

使用 Nitro v3 构建和部署通用 JavaScript 服务器。适用于处理 nitro.config.ts、defineNitroConfig、defineHandler、defineConfig、server.ts…

npx skills add https://github.com/getsentry/junior --skill nitro

Build, configure, and deploy Nitro v3 applications using correct APIs and patterns.

Step 1: Classify the request

Request typeRead first
API surface, handler signatures, imports, config optionsreferences/api-surface.md
Setup, routing, caching, storage, plugins, frameworks, common patternsreferences/common-use-cases.md
Build failures, runtime errors, deployment issues, migration from v2references/troubleshooting-workarounds.md

Load only the reference(s) matching the request. If the task spans categories, load relevant files.

Step 2: Apply core guardrails

  1. Import defineHandler from "nitro", not defineEventHandler (v2 API).
  2. Import config helpers from subpaths: "nitro/config", "nitro/cache", "nitro/storage", "nitro/database", "nitro/runtime-config", "nitro/types".
  3. Use web standard event.req (Request) for body/headers — not v2 utilities like readBody or getHeader.
  4. Never return from middleware unless intentionally terminating the request.
  5. Only GET/HEAD requests are cached by defineCachedHandler; other methods bypass automatically.
  6. useDatabase and defineTask require experimental feature flags.
  7. Use "nitro" package name, not "nitropack" (v2).

Step 3: Implement

  1. For new projects, use defineConfig from "nitro" in nitro.config.ts or add nitro() plugin from "nitro/vite" to vite.config.ts.
  2. For server entry, export a web-compatible fetch(Request): Response handler from server.ts, or use server.node.ts for Express/Fastify.
  3. For filesystem routes, place handlers in routes/ or api/ with [param] for dynamic segments and .get.ts/.post.ts for method-specific routes.
  4. For caching, use defineCachedHandler from "nitro/cache" with maxAge and swr options.
  5. For storage, use useStorage(namespace) from "nitro/storage" and configure drivers via storage config.
  6. For plugins, create files in plugins/ directory using definePlugin and hook into request, response, error, or close.
  7. For deployment, set preset in config or use NITRO_PRESET env var; Vercel/Netlify/Cloudflare are auto-detected.

Step 4: Validate

  1. Run nitro dev and verify routes respond correctly.
  2. Run nitro build and check .output/server/ contains expected files.
  3. For cached routes, verify cache headers (etag, cache-control) and 304 responses.
  4. For storage, verify data persists across requests with configured driver.
  5. For deployment, verify the preset produces correct output format.

Step 5: Troubleshoot

  1. defineEventHandler is not defined → use defineHandler from "nitro" (v3 API).
  2. Cannot find module 'nitropack' → rename to "nitro" in imports and package.json.
  3. Route not matched → check file is in routes/ or api/, or verify routes config mapping.
  4. Middleware returning responses unexpectedly → ensure middleware does not return a value.
  5. For detailed diagnostics, read references/troubleshooting-workarounds.md.

来自 sentry 的更多技能

generate-frontend-forms
sentry
使用Sentry新表单系统创建表单的指南。在实现表单、表单字段、验证或自动保存功能时使用。
official
sentry-snapshots-cocoa
sentry
完整的 Sentry Snapshots 配置,适用于 Apple/Cocoa 项目。当被要求“设置 SnapshotPreviews”、“设置 Apple 快照测试”、“上传 Apple 快照到…”时使用。
official
architecture-review
sentry
员工级代码库健康审查。发现单体模块、静默失败、类型安全漏洞、测试覆盖缺口以及LLM友好性问题。
official
linear-type-labeler
sentry
根据每个问题的标题和描述内容,对Linear问题进行分类,并从Sentry工作区的标签分类体系中应用一个类型标签。
official
sentry-flutter-sdk
sentry
完整的Sentry SDK配置,适用于Flutter和Dart。当被要求“为Flutter添加Sentry”、“安装sentry_flutter”、“在Dart中配置Sentry”或配置错误…时使用。
official
sentry-svelte-sdk
sentry
为Svelte和SvelteKit提供完整的Sentry SDK设置。当被要求“为Svelte添加Sentry”、“为SvelteKit添加Sentry”、“安装@sentry/sveltekit”或配置……时使用。
official
vercel-react-best-practices
sentry
来自 Vercel 工程团队的 React 和 Next.js 性能优化指南。在编写、审查或重构 React/Next.js… 时应使用此技能。
official
sentry-tanstack-start-sdk
sentry
为TanStack Start React提供完整的Sentry SDK设置。当被要求“向TanStack Start添加Sentry”、“安装@sentry/tanstackstart-react”或配置错误…时使用。
official