[PR #508] [MERGED] chore: exclude benchmarks/nextjs from pnpm workspace to prevent next dep hoisting #630

Closed
opened 2026-05-06 13:09:11 +02:00 by BreizhHardware · 0 comments

📋 Pull Request Information

Original PR: https://github.com/cloudflare/vinext/pull/508
Author: @james-elicx
Created: 3/12/2026
Status: Merged
Merged: 3/12/2026
Merged by: @james-elicx

Base: mainHead: fix/benchmark-nextjs-workspace-exclusion


📝 Commits (1)

  • c6b70db fix: exclude benchmarks/nextjs from pnpm workspace to prevent next dep hoisting

📊 Changes

3 files changed (+5 additions, -19 deletions)

View changed files

📝 benchmarks/nextjs/next.config.ts (+3 -6)
📝 pnpm-lock.yaml (+0 -12)
📝 pnpm-workspace.yaml (+2 -1)

📄 Description

Summary

  • Replaces benchmarks/* glob in pnpm-workspace.yaml with explicit entries for benchmarks/vinext and benchmarks/vinext-rolldown, leaving benchmarks/nextjs outside the workspace
  • Removes the eslint key from benchmarks/nextjs/next.config.ts, which was removed from NextConfig in Next.js 16

Root Cause

The vite v8 bump (#506) added benchmarks/* to the pnpm workspace. This caused pnpm to hoist next out of benchmarks/nextjs/node_modules/ into the monorepo root. Turbopack then couldn't resolve next/package.json starting from the benchmark project directory, failing with:

Error: Next.js inferred your workspace root, but it may not be correct.
    We couldn't find the Next.js package (next/package.json) from the project directory: .../benchmarks/nextjs/app

benchmarks/nextjs has no dependencies on workspace packages so it doesn't need to be in the workspace. benchmarks/vinext and benchmarks/vinext-rolldown link to packages/vinext via file: references and are listed explicitly.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/cloudflare/vinext/pull/508 **Author:** [@james-elicx](https://github.com/james-elicx) **Created:** 3/12/2026 **Status:** ✅ Merged **Merged:** 3/12/2026 **Merged by:** [@james-elicx](https://github.com/james-elicx) **Base:** `main` ← **Head:** `fix/benchmark-nextjs-workspace-exclusion` --- ### 📝 Commits (1) - [`c6b70db`](https://github.com/cloudflare/vinext/commit/c6b70db6d33fd3bd6ad2ad10ce87897df0edbf29) fix: exclude benchmarks/nextjs from pnpm workspace to prevent next dep hoisting ### 📊 Changes **3 files changed** (+5 additions, -19 deletions) <details> <summary>View changed files</summary> 📝 `benchmarks/nextjs/next.config.ts` (+3 -6) 📝 `pnpm-lock.yaml` (+0 -12) 📝 `pnpm-workspace.yaml` (+2 -1) </details> ### 📄 Description ## Summary - Replaces `benchmarks/*` glob in `pnpm-workspace.yaml` with explicit entries for `benchmarks/vinext` and `benchmarks/vinext-rolldown`, leaving `benchmarks/nextjs` outside the workspace - Removes the `eslint` key from `benchmarks/nextjs/next.config.ts`, which was removed from `NextConfig` in Next.js 16 ## Root Cause The vite v8 bump (#506) added `benchmarks/*` to the pnpm workspace. This caused pnpm to hoist `next` out of `benchmarks/nextjs/node_modules/` into the monorepo root. Turbopack then couldn't resolve `next/package.json` starting from the benchmark project directory, failing with: ``` Error: Next.js inferred your workspace root, but it may not be correct. We couldn't find the Next.js package (next/package.json) from the project directory: .../benchmarks/nextjs/app ``` `benchmarks/nextjs` has no dependencies on workspace packages so it doesn't need to be in the workspace. `benchmarks/vinext` and `benchmarks/vinext-rolldown` link to `packages/vinext` via `file:` references and are listed explicitly. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
BreizhHardware 2026-05-06 13:09:11 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/vinext#630
No description provided.