Skip to content

Turbopack: don't generate next-server.js.nft.json with adapters#93684

Open
mischnic wants to merge 2 commits intocanaryfrom
mischnic/adapters-no-server-nft
Open

Turbopack: don't generate next-server.js.nft.json with adapters#93684
mischnic wants to merge 2 commits intocanaryfrom
mischnic/adapters-no-server-nft

Conversation

@mischnic
Copy link
Copy Markdown
Member

@mischnic mischnic commented May 8, 2026

Adapters don't read these files.

Also added a snapshot test similar to the existing ones to not regress on function size

Copy link
Copy Markdown
Member Author

mischnic commented May 8, 2026

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions github-actions Bot added created-by: Turbopack team PRs by the Turbopack team. tests Turbopack Related to Turbopack with Next.js. labels May 8, 2026
@mischnic mischnic marked this pull request as ready for review May 8, 2026 11:45
@@ -0,0 +1,4 @@
/** @type {import("next").NextConfig} */
Copy link
Copy Markdown
Contributor

@vercel vercel Bot May 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding next.config.js to the test/production/next-server-nft/ directory causes the "with output:standalone" test suite to crash because it provides both a next.config.js file (via files: __dirname) and a nextConfig option, which the test framework explicitly forbids.

Fix on Vercel

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


    nextConfig provided on "createNext()" and as a file "next.config.js", use one or the other to continue

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lukesandberg Thanks for confirming — that's exactly the error the suggestion above addresses. The fix moves the output: 'standalone' setting into next.config.js via an env var (NEXT_OUTPUT_MODE), consistent with how adapterPath already uses NEXT_ADAPTER_PATH.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 8, 2026

Stats from current PR

✅ No significant changes detected

📊 All Metrics
📖 Metrics Glossary

Dev Server Metrics:

  • Listen = TCP port starts accepting connections
  • First Request = HTTP server returns successful response
  • Cold = Fresh build (no cache)
  • Warm = With cached build artifacts

Build Metrics:

  • Fresh = Clean build (no .next directory)
  • Cached = With existing .next directory

Change Thresholds:

  • Time: Changes < 50ms AND < 10%, OR < 2% are insignificant
  • Size: Changes < 1KB AND < 1% are insignificant
  • All other changes are flagged to catch regressions

⚡ Dev Server

Metric Canary PR Change Trend
Cold (Listen) 810ms 810ms ▃▅▅▁▅
Cold (Ready in log) 780ms 780ms ▄▁▅▇█
Cold (First Request) 1.217s 1.218s ▄▁▄▄▆
Warm (Listen) 810ms 810ms ▃▆▃▁▆
Warm (Ready in log) 780ms 781ms ▄▁▅▆█
Warm (First Request) 591ms 594ms ▄▁▅▇█
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 811ms 811ms █████
Cold (Ready in log) 771ms 775ms ▇████
Cold (First Request) 3.144s 3.154s ▄▇▇█▆
Warm (Listen) 812ms 812ms █████
Warm (Ready in log) 774ms 772ms ▇███▇
Warm (First Request) 3.141s 3.110s ▄▆▇█▅

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 4.712s 4.670s ▃▂█▇▅
Cached Build 4.703s 4.719s ▃▃▃▆▅
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 23.809s 23.580s ▃█▆▅▆
Cached Build 23.738s 23.742s ▂█▄▄▅
node_modules Size 505 MB 505 MB █████
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles
Canary PR Change
0-_gc56kf9tfo.js gzip 154 B N/A -
047ad-p-61fjn.js gzip 156 B N/A -
04hm05ar7kldw.js gzip 5.73 kB N/A -
0714gv_gbisrs.js gzip 70.8 kB N/A -
0cz1d0mv5g_q7.js gzip 39.4 kB 39.4 kB
0dvitrl5zg37g.js gzip 8.82 kB N/A -
0sf7ysou-72zd.js gzip 8.71 kB N/A -
11ny9t-iyn9yw.js gzip 154 B N/A -
157abun3hwc_s.js gzip 10.3 kB N/A -
1bhal_i5byhy7.js gzip 162 B N/A -
1elt1qium-r2m.css gzip 115 B 115 B
1jfwzy3ri2pyr.js gzip 154 B N/A -
1jj68jv9537mc.js gzip 13.8 kB N/A -
1jpaub6y8xlfr.js gzip 2.3 kB N/A -
1ot0mvscrc_uf.js gzip 233 B N/A -
2_m3xv2uq3sjc.js gzip 1.46 kB N/A -
24y34mwgrkqp4.js gzip 8.78 kB N/A -
28lrkt28g7fpx.js gzip 155 B N/A -
2c-fd4y1zozz8.js gzip 8.79 kB N/A -
2d7416h_xd36x.js gzip 8.71 kB N/A -
2extn3odmmem_.js gzip 12.9 kB N/A -
2fyhyy7niw9r6.js gzip 7.61 kB N/A -
2lyuhit6rn8fy.js gzip 9.44 kB N/A -
2q0gr8wfr3jwl.js gzip 8.77 kB N/A -
2qmtk0zius6fd.js gzip 157 B N/A -
2t9e75oz6r0zp.js gzip 8.76 kB N/A -
2uku_olcn15b7.js gzip 8.79 kB N/A -
30r8mm-46bdqy.js gzip 220 B 220 B
3c03ks8ic59bl.js gzip 160 B N/A -
3c03yiy5ds-h6.js gzip 65.5 kB N/A -
3d0blqiuhma_c.js gzip 155 B N/A -
3dd42mxmevz1t.js gzip 49.5 kB N/A -
3inab2jybr4k9.js gzip 450 B N/A -
3jkm5tdjvaf_q.js gzip 13.1 kB N/A -
3mix8ikliw_bj.js gzip 169 B N/A -
3mt67agm5wp40.js gzip 10.6 kB N/A -
3saabek4kohwi.js gzip 10 kB N/A -
3x_ftwxjtc4jr.js gzip 152 B N/A -
3x0-g47j0wg_t.js gzip 154 B N/A -
40pcd44z40i4a.js gzip 156 B N/A -
4189xmby9yu1p.js gzip 13.6 kB N/A -
turbopack-02..93y4.js gzip 4.2 kB N/A -
turbopack-0c..i2y5.js gzip 4.18 kB N/A -
turbopack-0m..eii3.js gzip 4.2 kB N/A -
turbopack-0t..cm46.js gzip 4.2 kB N/A -
turbopack-13..1jkn.js gzip 4.2 kB N/A -
turbopack-1s..s1zo.js gzip 4.21 kB N/A -
turbopack-23..--2_.js gzip 4.2 kB N/A -
turbopack-28..zluk.js gzip 4.2 kB N/A -
turbopack-2a..kxyc.js gzip 4.2 kB N/A -
turbopack-2s..sur4.js gzip 4.2 kB N/A -
turbopack-2z..x5dq.js gzip 4.19 kB N/A -
turbopack-3h..65h_.js gzip 4.2 kB N/A -
turbopack-3s..rdjl.js gzip 4.2 kB N/A -
turbopack-3y..gfl4.js gzip 4.2 kB N/A -
0_i7nqgx23st7.js gzip N/A 10 kB -
05e40c15cx1dd.js gzip N/A 7.61 kB -
06puhytyxk31p.js gzip N/A 8.82 kB -
0cgwxw9wez5uz.js gzip N/A 155 B -
0fod6nyyd77zu.js gzip N/A 49.5 kB -
0m34gln_kt4fg.js gzip N/A 5.73 kB -
0wjn_zvopg8j7.js gzip N/A 155 B -
1g3q1ww01thnl.js gzip N/A 2.3 kB -
1hraqxuiymq6v.js gzip N/A 8.79 kB -
1l9un1sl77287.js gzip N/A 1.46 kB -
1oj2783a6mjmk.js gzip N/A 153 B -
1tu42mhgspxaj.js gzip N/A 152 B -
2_n5io6i3e7-d.js gzip N/A 65.6 kB -
21-eavqb1k_36.js gzip N/A 13.9 kB -
2147zgtf14z-q.js gzip N/A 234 B -
23bz3xsg-5-1s.js gzip N/A 8.71 kB -
25m28ppgv1r-l.js gzip N/A 156 B -
27441mytv7pbm.js gzip N/A 9.43 kB -
2cjkwjgm1zcfs.js gzip N/A 8.71 kB -
2feeljlwn03ka.js gzip N/A 156 B -
2scd8zaoyb8md.js gzip N/A 8.79 kB -
2st_qs6p_9us0.js gzip N/A 13.1 kB -
2zo2exm1d8qj1.js gzip N/A 13.6 kB -
31gszfpoi49o_.js gzip N/A 157 B -
3g88fx8gbrpbb.js gzip N/A 159 B -
3hn75zuxly9az.js gzip N/A 10.3 kB -
3hqh7m128tvsn.js gzip N/A 8.77 kB -
3hqti_t-zy1x4.js gzip N/A 449 B -
3k_ox9mqvj991.js gzip N/A 162 B -
3lwd3rbxfr02f.js gzip N/A 157 B -
3mnawenie1flm.js gzip N/A 8.76 kB -
3sxqvx3vn2_or.js gzip N/A 155 B -
3ubsozlu6zs38.js gzip N/A 10.6 kB -
3vb9z2m8f0e3l.js gzip N/A 70.8 kB -
41_yhm_31fcf8.js gzip N/A 155 B -
41mf-x3mmsxae.js gzip N/A 12.9 kB -
41ovqpfyyufzz.js gzip N/A 168 B -
43iwfqjnx1cy_.js gzip N/A 8.78 kB -
turbopack-0g..-9g6.js gzip N/A 4.2 kB -
turbopack-1b..n71_.js gzip N/A 4.2 kB -
turbopack-1e..hu78.js gzip N/A 4.2 kB -
turbopack-1g..7-n-.js gzip N/A 4.2 kB -
turbopack-1l..qd49.js gzip N/A 4.21 kB -
turbopack-1t..oruv.js gzip N/A 4.2 kB -
turbopack-26..kls-.js gzip N/A 4.18 kB -
turbopack-2q..tzzk.js gzip N/A 4.2 kB -
turbopack-2s..khje.js gzip N/A 4.2 kB -
turbopack-31..xepd.js gzip N/A 4.2 kB -
turbopack-3q..wh7s.js gzip N/A 4.2 kB -
turbopack-3t..pfdy.js gzip N/A 4.2 kB -
turbopack-3y..qhsx.js gzip N/A 4.2 kB -
turbopack-43..rc4q.js gzip N/A 4.2 kB -
Total 468 kB 468 kB ⚠️ +54 B

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 717 B 718 B
Total 717 B 718 B ⚠️ +1 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 429 B 433 B
Total 429 B 433 B ⚠️ +4 B

📦 Webpack

Client

Main Bundles
Canary PR Change
2258-HASH.js gzip 61.1 kB N/A -
2266-HASH.js gzip 4.69 kB N/A -
3317.HASH.js gzip 169 B N/A -
4866-HASH.js gzip 5.64 kB N/A -
9e302639-HASH.js gzip 62.7 kB N/A -
framework-HASH.js gzip 59.5 kB 59.5 kB
main-app-HASH.js gzip 256 B 255 B
main-HASH.js gzip 39.9 kB 39.9 kB
webpack-HASH.js gzip 1.68 kB 1.68 kB
175fd0fd-HASH.js gzip N/A 62.7 kB -
2596-HASH.js gzip N/A 5.63 kB -
34-HASH.js gzip N/A 61 kB -
5691.HASH.js gzip N/A 169 B -
9156-HASH.js gzip N/A 4.68 kB -
Total 236 kB 236 kB ✅ -87 B
Polyfills
Canary PR Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Total 39.4 kB 39.4 kB
Pages
Canary PR Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 181 B 182 B
css-HASH.js gzip 334 B 332 B
dynamic-HASH.js gzip 1.79 kB 1.81 kB
edge-ssr-HASH.js gzip 255 B 255 B
head-HASH.js gzip 351 B 348 B
hooks-HASH.js gzip 385 B 384 B
image-HASH.js gzip 580 B 580 B
index-HASH.js gzip 257 B 259 B
link-HASH.js gzip 2.51 kB 2.52 kB
routerDirect..HASH.js gzip 318 B 319 B
script-HASH.js gzip 387 B 386 B
withRouter-HASH.js gzip 316 B 316 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Total 7.97 kB 7.99 kB ⚠️ +19 B

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 126 kB 126 kB
page.js gzip 275 kB 270 kB 🟢 5.24 kB (-2%)
Total 401 kB 396 kB ✅ -5.45 kB
Middleware
Canary PR Change
middleware-b..fest.js gzip 619 B 615 B
middleware-r..fest.js gzip 155 B 155 B
middleware.js gzip 44.4 kB 44.8 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 46.1 kB 46.4 kB ⚠️ +386 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 719 B 717 B
Total 719 B 717 B ✅ -2 B
Build Cache
Canary PR Change
0.pack gzip 4.45 MB 4.45 MB
index.pack gzip 114 kB 115 kB
index.pack.old gzip 113 kB 114 kB
Total 4.68 MB 4.68 MB ⚠️ +3.25 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 349 kB 349 kB
app-page-exp..prod.js gzip 194 kB 194 kB
app-page-tur...dev.js gzip 349 kB 349 kB
app-page-tur..prod.js gzip 194 kB 194 kB
app-page-tur...dev.js gzip 345 kB 345 kB
app-page-tur..prod.js gzip 192 kB 192 kB
app-page.run...dev.js gzip 346 kB 346 kB
app-page.run..prod.js gzip 192 kB 192 kB
app-route-ex...dev.js gzip 77.5 kB 77.5 kB
app-route-ex..prod.js gzip 52.9 kB 52.9 kB
app-route-tu...dev.js gzip 77.6 kB 77.6 kB
app-route-tu..prod.js gzip 52.9 kB 52.9 kB
app-route-tu...dev.js gzip 77.2 kB 77.2 kB
app-route-tu..prod.js gzip 52.7 kB 52.7 kB
app-route.ru...dev.js gzip 77.1 kB 77.1 kB
app-route.ru..prod.js gzip 52.7 kB 52.7 kB
dist_client_...dev.js gzip 324 B 324 B
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 318 B 318 B
dist_client_...dev.js gzip 317 B 317 B
pages-api-tu...dev.js gzip 44.3 kB 44.3 kB
pages-api-tu..prod.js gzip 33.8 kB 33.8 kB
pages-api.ru...dev.js gzip 44.3 kB 44.3 kB
pages-api.ru..prod.js gzip 33.7 kB 33.7 kB
pages-turbo....dev.js gzip 53.7 kB 53.7 kB
pages-turbo...prod.js gzip 39.4 kB 39.4 kB
pages.runtim...dev.js gzip 53.6 kB 53.6 kB
pages.runtim..prod.js gzip 39.3 kB 39.3 kB
server.runti..prod.js gzip 63.2 kB 63.2 kB
use-cache-pr...dev.js gzip 69.7 kB 69.7 kB
use-cache-pr...dev.js gzip 69.7 kB 69.7 kB
use-cache-pr...dev.js gzip 68 kB 68 kB
use-cache-pr...dev.js gzip 68 kB 68 kB
Total 3.36 MB 3.36 MB
📎 Tarball URL
https://vercel-packages.vercel.app/next/commits/a60a1de79b74b6e5b184feda34ddca8931702776/next

Commit: a60a1de

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 8, 2026

Failing test suites

Commit: a60a1de | About building and testing Next.js

pnpm test-start test/production/next-server-nft/next-server-nft.test.ts (job)

  • next-server-nft > with output:standalone > should not trace too many files in next-server.js.nft.json (DD)
Expand output

● next-server-nft › with output:standalone › should not trace too many files in next-server.js.nft.json

nextConfig provided on "createNext()" and as a file "next.config.js", use one or the other to continue

  356 |
  357 |         if (nextConfigFile && this.nextConfig) {
> 358 |           throw new Error(
      |                 ^
  359 |             `nextConfig provided on "createNext()" and as a file "${nextConfigFile}", use one or the other to continue`
  360 |           )
  361 |         }

  at lib/next-modes/base.ts:358:17
  at Span.traceAsyncFn (../packages/next/src/trace/trace.ts:146:14)
  at NextStartInstance.createTestDir (lib/next-modes/base.ts:234:5)
  at NextStartInstance.setup (lib/next-modes/next-start.ts:45:5)
  at lib/e2e-utils/index.ts:276:7
  at Span.traceAsyncFn (../packages/next/src/trace/trace.ts:146:14)
  at createNext (lib/e2e-utils/index.ts:241:12)
  at Object.<anonymous> (lib/e2e-utils/index.ts:331:14)

pnpm test-start-turbo test/production/next-server-nft/next-server-nft.test.ts (turbopack) (job)

  • next-server-nft > with output:standalone > should not trace too many files in next-server.js.nft.json (DD)
Expand output

● next-server-nft › with output:standalone › should not trace too many files in next-server.js.nft.json

nextConfig provided on "createNext()" and as a file "next.config.js", use one or the other to continue

  356 |
  357 |         if (nextConfigFile && this.nextConfig) {
> 358 |           throw new Error(
      |                 ^
  359 |             `nextConfig provided on "createNext()" and as a file "${nextConfigFile}", use one or the other to continue`
  360 |           )
  361 |         }

  at lib/next-modes/base.ts:358:17
  at Span.traceAsyncFn (../packages/next/src/trace/trace.ts:146:14)
  at NextStartInstance.createTestDir (lib/next-modes/base.ts:234:5)
  at NextStartInstance.setup (lib/next-modes/next-start.ts:45:5)
  at lib/e2e-utils/index.ts:276:7
  at Span.traceAsyncFn (../packages/next/src/trace/trace.ts:146:14)
  at createNext (lib/e2e-utils/index.ts:241:12)
  at Object.<anonymous> (lib/e2e-utils/index.ts:331:14)

Copy link
Copy Markdown
Contributor

@lukesandberg lukesandberg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vade comment is on point

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

created-by: Turbopack team PRs by the Turbopack team. tests Turbopack Related to Turbopack with Next.js.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants