cloudflare / cloudflare/vinext
vinext check reports false incompatibilities when other toolchains' build output exists (.open-next/, .wrangler/, .output/)
- Dominant language
- TypeScript
- Stars
- 8.8k
- Forks
- 406
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 120
Description
**Context**
Following the documented OpenNext → vinext migration path leaves the previous toolchain's build output next to the project root (`.open-next/`, `.wrangler/`, `.output/`, and friends). `vinext check` walks those directories during the compatibility scan and reports the bundled worker code as application source.
**Observed**
- Imports inside `.open-next/server-functions/...` (e.g. `next/dist/server/next-server.js`) flagged as unsupported
- CJS globals inside those bundles flagged as blockers
- The overall compatibility percentage dragged down — we measured **79%** on a Payload 3 app that was fully compatible once the stale output was deleted
**Expected**
The scan should skip build output from other toolchains the same way it skips `node_modules`/`.next`/`dist`; migration artifacts are deleted during the migration anyway.
**Workaround**
Delete `.open-next/` (and other stale output) before running `vinext check`.
Fixed by #3231.
Contributor guide
Research direction
Start with the vinext check compatibility scan and compare its handling of node_modules, .next, and dist with the migration output directories named in the issue: .open-next/, .wrangler/, and .output/. The work is complete when those stale toolchain directories no longer affect compatibility results; issue #3231 is identified as the fix.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- cli, tooling
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 25/100