-
Notifications
You must be signed in to change notification settings - Fork 27.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Turbopack: migrate client references to single-graph-traversal #73322
Turbopack: migrate client references to single-graph-traversal #73322
Conversation
Tests Passed |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js mischnic/single-traversal-client-references | Change | |
---|---|---|---|
buildDuration | 39.2s | 39.9s | |
buildDurationCached | 37.5s | 31.2s | N/A |
nodeModulesSize | 409 MB | 409 MB | |
nextStartRea..uration (ms) | 892ms | 850ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js mischnic/single-traversal-client-references | Change | |
---|---|---|---|
1187-HASH.js gzip | 50.4 kB | 50.4 kB | N/A |
8276.HASH.js gzip | 169 B | 168 B | N/A |
8377-HASH.js gzip | 5.3 kB | 5.3 kB | N/A |
bccd1874-HASH.js gzip | 53 kB | 53 kB | N/A |
framework-HASH.js gzip | 57.5 kB | 57.5 kB | N/A |
main-app-HASH.js gzip | 232 B | 235 B | N/A |
main-HASH.js gzip | 33.8 kB | 33.7 kB | N/A |
webpack-HASH.js gzip | 1.71 kB | 1.71 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js mischnic/single-traversal-client-references | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 39.4 kB | 39.4 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js mischnic/single-traversal-client-references | Change | |
---|---|---|---|
_app-HASH.js gzip | 193 B | 193 B | ✓ |
_error-HASH.js gzip | 193 B | 193 B | ✓ |
amp-HASH.js gzip | 512 B | 510 B | N/A |
css-HASH.js gzip | 343 B | 342 B | N/A |
dynamic-HASH.js gzip | 1.84 kB | 1.84 kB | ✓ |
edge-ssr-HASH.js gzip | 265 B | 265 B | ✓ |
head-HASH.js gzip | 363 B | 362 B | N/A |
hooks-HASH.js gzip | 393 B | 392 B | N/A |
image-HASH.js gzip | 4.44 kB | 4.43 kB | N/A |
index-HASH.js gzip | 268 B | 268 B | ✓ |
link-HASH.js gzip | 2.35 kB | 2.34 kB | N/A |
routerDirect..HASH.js gzip | 328 B | 328 B | ✓ |
script-HASH.js gzip | 397 B | 397 B | ✓ |
withRouter-HASH.js gzip | 323 B | 326 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 3.59 kB | 3.59 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js mischnic/single-traversal-client-references | Change | |
---|---|---|---|
_buildManifest.js gzip | 747 B | 745 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js mischnic/single-traversal-client-references | Change | |
---|---|---|---|
index.html gzip | 524 B | 522 B | N/A |
link.html gzip | 539 B | 537 B | N/A |
withRouter.html gzip | 520 B | 519 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Edge SSR bundle Size
vercel/next.js canary | vercel/next.js mischnic/single-traversal-client-references | Change | |
---|---|---|---|
edge-ssr.js gzip | 127 kB | 127 kB | N/A |
page.js gzip | 202 kB | 202 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | vercel/next.js mischnic/single-traversal-client-references | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 671 B | 667 B | N/A |
middleware-r..fest.js gzip | 155 B | 156 B | N/A |
middleware.js gzip | 31 kB | 31 kB | N/A |
edge-runtime..pack.js gzip | 844 B | 844 B | ✓ |
Overall change | 844 B | 844 B | ✓ |
Next Runtimes
vercel/next.js canary | vercel/next.js mischnic/single-traversal-client-references | Change | |
---|---|---|---|
523-experime...dev.js gzip | 322 B | 322 B | ✓ |
523.runtime.dev.js gzip | 314 B | 314 B | ✓ |
app-page-exp...dev.js gzip | 322 kB | 322 kB | ✓ |
app-page-exp..prod.js gzip | 127 kB | 127 kB | ✓ |
app-page-tur..prod.js gzip | 140 kB | 140 kB | ✓ |
app-page-tur..prod.js gzip | 135 kB | 135 kB | ✓ |
app-page.run...dev.js gzip | 312 kB | 312 kB | ✓ |
app-page.run..prod.js gzip | 122 kB | 122 kB | ✓ |
app-route-ex...dev.js gzip | 37.1 kB | 37.1 kB | ✓ |
app-route-ex..prod.js gzip | 25.1 kB | 25.1 kB | ✓ |
app-route-tu..prod.js gzip | 25.1 kB | 25.1 kB | ✓ |
app-route-tu..prod.js gzip | 24.9 kB | 24.9 kB | ✓ |
app-route.ru...dev.js gzip | 38.7 kB | 38.7 kB | ✓ |
app-route.ru..prod.js gzip | 24.9 kB | 24.9 kB | ✓ |
pages-api-tu..prod.js gzip | 9.56 kB | 9.56 kB | ✓ |
pages-api.ru...dev.js gzip | 11.4 kB | 11.4 kB | ✓ |
pages-api.ru..prod.js gzip | 9.56 kB | 9.56 kB | ✓ |
pages-turbo...prod.js gzip | 21.3 kB | 21.3 kB | ✓ |
pages.runtim...dev.js gzip | 27 kB | 27 kB | ✓ |
pages.runtim..prod.js gzip | 21.3 kB | 21.3 kB | ✓ |
server.runti..prod.js gzip | 915 kB | 915 kB | ✓ |
Overall change | 2.35 MB | 2.35 MB | ✓ |
build cache Overall increase ⚠️
vercel/next.js canary | vercel/next.js mischnic/single-traversal-client-references | Change | |
---|---|---|---|
0.pack gzip | 2.04 MB | 2.04 MB | N/A |
index.pack gzip | 71.2 kB | 72.1 kB | |
Overall change | 71.2 kB | 72.1 kB |
Diff details
Diff for main-HASH.js
Diff too large to display
da8ef0c
to
699e475
Compare
258f18e
to
9551e4a
Compare
699e475
to
356c01e
Compare
9551e4a
to
293356b
Compare
356c01e
to
4860977
Compare
aca380f
to
5f3993d
Compare
4860977
to
3fab151
Compare
5f3993d
to
8336bfa
Compare
3fab151
to
e7db9dc
Compare
8336bfa
to
d63879a
Compare
e7db9dc
to
41613ab
Compare
d63879a
to
d7231dd
Compare
41613ab
to
85864d7
Compare
d7231dd
to
5f0fcb0
Compare
85864d7
to
f001e9d
Compare
5f0fcb0
to
61c8e09
Compare
f001e9d
to
cecd490
Compare
155b5ed
to
d3f5611
Compare
5051ae5
to
1051e12
Compare
// The previous iterations above (might) have added the entry node, but not actually visited it. | ||
visited_modules.remove(&entry); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How can that happen?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is actually intentional:
In the dev case, the graphs for each layout segment contain the rsc_entry (to be able to easily traverse them all with the same entry), which is added manually (and doesn't actually has its references visited).
And the visited_modules here are simply sourced from the nodes in the graph.
So to actually make this very last traversal do something, it has to remove the entry again.
1051e12
to
3960bda
Compare
3960bda
to
3f5ca85
Compare
The client reference manifest has to contain all client references for all layout segments. Currently it just contains all client references but they are attributed to the first server component that uses it. Reverts the approach of #73322 and use the old implementation again
Closes PACK-3536