cloudflare/vinext

Import condition resolution wrong per Vite environment (`react-server`, `edge-light`, `browser`)

Open

#1356 aperta il 20 mag 2026

Vedi su GitHub
 (2 commenti) (0 reazioni) (0 assegnatari)TypeScript (329 fork)github user discovery
adapter-api-e2ehelp wanted

Metriche repository

Star
 (8120 star)
Metriche merge PR
 (Merge medio 1g 1h) (462 PR mergiate in 30 g)

Descrizione

This issue was created by an agent analysing CI failures from the Next.js Deploy Suite (vinext main vs Next.js v16.2.6, 2026-05-20).

Problem

Vite import conditions (react-server, edge-light, browser) are not being set correctly per environment. Package exports conditions should resolve differently depending on which Vite environment is doing the importing:

  • RSC environment: Should resolve react-server condition
  • Edge runtime: Should resolve edge-light condition
  • Client/browser: Should resolve browser condition
  • SSR/Node: Should resolve node condition

Tests show that conditions like react-server resolve to null when they should have a value, and edge-light resolves as node instead.

Estimated Impact

~11 test failures.

Affected Test Suites

  • test/e2e/import-conditions/import-conditions.test.ts (11 failures)

Recommendation

  1. Reproduce first in vinext's own test suite. Add a test with a package that has different exports conditions (e.g., react-server, edge-light, browser, node) and verify the correct export is resolved in each environment. Confirm the wrong condition is being used.

  2. Study how conditions are configured per environment. Check resolve.conditions in the Vite config for each environment (RSC, SSR, client). The RSC environment needs ["react-server", ...], edge environments need ["edge-light", "worker", ...], and client needs ["browser", ...].

  3. Fix the Vite plugin's environment configuration. In the vinext Vite plugin (index.ts), ensure each environment's resolve.conditions array includes the correct conditions for that context.

Guida contributor