cloudflare/vinext

App Router client modules: package `type: "commonjs"`/`"module"` overrides ignored

Open

#1.504 geöffnet am 22. Mai 2026

Auf GitHub ansehen
 (0 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)TypeScript (329 Forks)github user discovery
adapter-api-e2ehelp wanted

Repository-Metriken

Stars
 (8.120 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 1T 1h) (462 gemergte PRs in 30 T)

Beschreibung

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-22).

Problem

When a "use client" module imports a package whose package.json sets "type": "commonjs" (or "module") without an exports map, Next.js honors the type field. vinext always resolves the ESM build, so the rendered text mixes up cjs and esm markers.

Package with `type: "commonjs"` still resolved as ESM

Estimated Impact

~2 test failures across the deploy suite.

Affected Test Suites

  • test/e2e/app-dir/client-module-with-package-type/index.test.ts (2 failures)

Recommendation

  1. Reproduce first in vinext's own test suite. Add fixtures importing two packages: one with type: 'commonjs' and one with type: 'module', both without exports. Assert each resolves correctly.

  2. Respect type field in the resolver. When there is no exports map, fall back to type for choosing between main (CJS) and module (ESM) entry.

Contributor Guide