cloudflare / cloudflare/vinext

vinext check reports false incompatibilities when other toolchains' build output exists (.open-next/, .wrangler/, .output/)

Open
#3,232 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.