cloudflare/vinext

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

Open

#1.504 aberto em 22 de mai. de 2026

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)TypeScript (329 forks)github user discovery
adapter-api-e2ehelp wanted

Métricas do repositório

Stars
 (8.120 stars)
Métricas de merge de PR
 (Mesclagem média 1d 1h) (462 fundiu PRs em 30d)

Description

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.

Guia do colaborador