cloudflare/vinext

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

Open

#1,504 opened on 2026年5月22日

GitHub で見る
 (0 comments) (0 reactions) (0 assignees)TypeScript (329 forks)github user discovery
adapter-api-e2ehelp wanted

Repository metrics

Stars
 (8,120 stars)
PR merge metrics
 (平均マージ 1d 1h) (30d で 462 merged PRs)

説明

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.

コントリビューターガイド