Nitro · NITRO0021 · NITRO0022
Keep Nitro server helpers in server/utils
Suggests server/utils for helpers that Nitro server routes, middleware, and plugins import from ad-hoc directories.
Run this rule
pnpm vite-doctor . --framework nitro --extends auto,nitro/strict --rules nitro/structure/prefer-server-utils
Why it matters
Nitro 2 and Nuxt auto-import exports from server/utils in server code and generate their types. Helpers kept in directories such as server/lib or server/helpers need a relative import in every caller.
Recommended fix
Move shared server helpers to server/utils/ when server auto-imports are enabled. NITRO0022 is currently suppressed: Doctor does not yet capture Nitro’s resolved provider and exclusion evidence, so it cannot establish that an explicit utility import selects the same implementation as an auto-import.
Useful links
Example
Let Nitro auto-import server helpers
Before
// server/api/admin/users.get.ts
import { requireAdmin } from '../../lib/auth'
import { paginate } from '../../helpers/paginate'
export default defineEventHandler(async (event) => {
await requireAdmin(event)
return paginate(event, users)
})
After
// server/utils/auth.ts exports requireAdmin
// server/utils/paginate.ts exports paginate
// server/api/admin/users.get.ts
export default defineEventHandler(async (event) => {
await requireAdmin(event)
return paginate(event, users)
})