Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Turbopack: capture all references in module graph #74873

Merged
merged 18 commits into from
Jan 15, 2025

Conversation

mischnic
Copy link
Contributor

@mischnic mischnic commented Jan 14, 2025

Everything should be in place now to have the module petgraph be 100% accurate even if its split across multiple graphs (i.e. in dev or because of the actions).

Nothing uses this yet, in the future we should measure if there's a perf impact of running next/dynamic, client references, server actions on the whole graph as opposed to only on the change layout segments (which is what currently happens).

  • clean up/ensure that there are always all needed entries in the graph struct

Closes PACK-3733

@ijjk ijjk added created-by: Turbopack team PRs by the Turbopack team. Turbopack Related to Turbopack with Next.js. labels Jan 14, 2025
Copy link
Contributor Author

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

@mischnic mischnic changed the title wip Turbopack: capture all references in module graph Jan 14, 2025
@ijjk
Copy link
Member

ijjk commented Jan 14, 2025

Tests Passed

@ijjk
Copy link
Member

ijjk commented Jan 14, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js mischnic/module-graph-linking Change
buildDuration 18.2s 15.2s N/A
buildDurationCached 14.3s 12s N/A
nodeModulesSize 418 MB 418 MB N/A
nextStartRea..uration (ms) 416ms 424ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js mischnic/module-graph-linking Change
5306-HASH.js gzip 53.9 kB 53.9 kB N/A
8276.HASH.js gzip 169 B 168 B N/A
8377-HASH.js gzip 5.44 kB 5.44 kB N/A
bccd1874-HASH.js gzip 52.9 kB 52.9 kB N/A
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 240 B 242 B N/A
main-HASH.js gzip 34.2 kB 34.2 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/module-graph-linking 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/module-graph-linking 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.57 kB 4.57 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/module-graph-linking Change
_buildManifest.js gzip 749 B 747 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js mischnic/module-graph-linking Change
index.html gzip 524 B 523 B N/A
link.html gzip 539 B 538 B N/A
withRouter.html gzip 520 B 520 B
Overall change 520 B 520 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js mischnic/module-graph-linking Change
edge-ssr.js gzip 129 kB 129 kB N/A
page.js gzip 208 kB 208 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js mischnic/module-graph-linking Change
middleware-b..fest.js gzip 670 B 666 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 31.3 kB 31.3 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/module-graph-linking Change
274-experime...dev.js gzip 322 B 322 B
274.runtime.dev.js gzip 314 B 314 B
app-page-exp...dev.js gzip 374 kB 374 kB
app-page-exp..prod.js gzip 130 kB 130 kB
app-page-tur..prod.js gzip 143 kB 143 kB
app-page-tur..prod.js gzip 139 kB 139 kB
app-page.run...dev.js gzip 362 kB 362 kB
app-page.run..prod.js gzip 126 kB 126 kB
app-route-ex...dev.js gzip 37.6 kB 37.6 kB
app-route-ex..prod.js gzip 25.6 kB 25.6 kB
app-route-tu..prod.js gzip 25.6 kB 25.6 kB
app-route-tu..prod.js gzip 25.4 kB 25.4 kB
app-route.ru...dev.js gzip 39.2 kB 39.2 kB
app-route.ru..prod.js gzip 25.4 kB 25.4 kB
pages-api-tu..prod.js gzip 9.69 kB 9.69 kB
pages-api.ru...dev.js gzip 11.6 kB 11.6 kB
pages-api.ru..prod.js gzip 9.68 kB 9.68 kB
pages-turbo...prod.js gzip 21.7 kB 21.7 kB
pages.runtim...dev.js gzip 27.5 kB 27.5 kB
pages.runtim..prod.js gzip 21.7 kB 21.7 kB
server.runti..prod.js gzip 916 kB 916 kB
Overall change 2.47 MB 2.47 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js mischnic/module-graph-linking Change
0.pack gzip 2.09 MB 2.09 MB N/A
index.pack gzip 75.2 kB 75.8 kB ⚠️ +601 B
Overall change 75.2 kB 75.8 kB ⚠️ +601 B
Diff details
Diff for main-HASH.js

Diff too large to display

Commit: 2bab268

@mischnic mischnic marked this pull request as ready for review January 14, 2025 20:44
@mischnic mischnic force-pushed the mischnic/module-graph-linking branch from c862ac8 to 9cc05cf Compare January 14, 2025 21:23
@mischnic mischnic requested review from wbinnssmith and sokra January 14, 2025 21:23
@mischnic mischnic force-pushed the mischnic/module-graph-linking branch from 9cc05cf to b815040 Compare January 15, 2025 08:44
@mischnic mischnic force-pushed the mischnic/module-graph-linking branch from 11c176b to c8cbb5d Compare January 15, 2025 13:42
@mischnic mischnic force-pushed the mischnic/module-graph-linking branch from a15a835 to 2bab268 Compare January 15, 2025 15:40
@mischnic mischnic requested a review from sokra January 15, 2025 16:26
@sokra sokra merged commit 83c9c39 into canary Jan 15, 2025
131 checks passed
@sokra sokra deleted the mischnic/module-graph-linking branch January 15, 2025 16:31
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 30, 2025
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
created-by: Turbopack team PRs by the Turbopack team. locked Turbopack Related to Turbopack with Next.js.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants