-
Notifications
You must be signed in to change notification settings - Fork 27.5k
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: Allow client components from foreign code in app routes #64751
Turbopack: Allow client components from foreign code in app routes #64751
Conversation
This extends #64520 to cover cases where client components originate from node_modules (foreign code). Test Plan: Extended the integration test to cover this
.await?, | ||
); | ||
next_server_rules.extend(common_next_server_rules.iter().cloned()); | ||
internal_custom_rules.extend(common_next_server_rules); |
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 rule combination & ordering game gets more and more interesting 😅
Tests Passed |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js wbinnssmith/client-components-node-modules | Change | |
---|---|---|---|
buildDuration | 28.8s | 27.1s | N/A |
buildDurationCached | 15.7s | 13.5s | N/A |
nodeModulesSize | 359 MB | 359 MB | N/A |
nextStartRea..uration (ms) | 688ms | 694ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js wbinnssmith/client-components-node-modules | Change | |
---|---|---|---|
1103-HASH.js gzip | 31.8 kB | 31.8 kB | N/A |
1a9f679d-HASH.js gzip | 53.5 kB | 53.5 kB | N/A |
335-HASH.js gzip | 5.09 kB | 5.09 kB | N/A |
7953.HASH.js gzip | 169 B | 169 B | ✓ |
framework-HASH.js gzip | 45.2 kB | 45.2 kB | ✓ |
main-app-HASH.js gzip | 229 B | 228 B | N/A |
main-HASH.js gzip | 31.5 kB | 31.6 kB | N/A |
webpack-HASH.js gzip | 1.65 kB | 1.65 kB | N/A |
Overall change | 45.4 kB | 45.4 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js wbinnssmith/client-components-node-modules | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js wbinnssmith/client-components-node-modules | Change | |
---|---|---|---|
_app-HASH.js gzip | 192 B | 193 B | N/A |
_error-HASH.js gzip | 192 B | 193 B | N/A |
amp-HASH.js gzip | 507 B | 511 B | N/A |
css-HASH.js gzip | 341 B | 343 B | N/A |
dynamic-HASH.js gzip | 2.52 kB | 2.52 kB | ✓ |
edge-ssr-HASH.js gzip | 266 B | 265 B | N/A |
head-HASH.js gzip | 362 B | 365 B | N/A |
hooks-HASH.js gzip | 392 B | 392 B | ✓ |
image-HASH.js gzip | 4.32 kB | 4.32 kB | N/A |
index-HASH.js gzip | 268 B | 268 B | ✓ |
link-HASH.js gzip | 2.69 kB | 2.69 kB | N/A |
routerDirect..HASH.js gzip | 329 B | 328 B | N/A |
script-HASH.js gzip | 397 B | 397 B | ✓ |
withRouter-HASH.js gzip | 324 B | 324 B | ✓ |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 4 kB | 4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js wbinnssmith/client-components-node-modules | Change | |
---|---|---|---|
_buildManifest.js gzip | 483 B | 483 B | ✓ |
Overall change | 483 B | 483 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js wbinnssmith/client-components-node-modules | Change | |
---|---|---|---|
index.html gzip | 526 B | 528 B | N/A |
link.html gzip | 540 B | 540 B | ✓ |
withRouter.html gzip | 523 B | 524 B | N/A |
Overall change | 540 B | 540 B | ✓ |
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary | vercel/next.js wbinnssmith/client-components-node-modules | Change | |
---|---|---|---|
edge-ssr.js gzip | 94.7 kB | 108 kB | |
page.js gzip | 3.06 kB | 3.04 kB | N/A |
Overall change | 94.7 kB | 108 kB |
Middleware size
vercel/next.js canary | vercel/next.js wbinnssmith/client-components-node-modules | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 623 B | 623 B | ✓ |
middleware-r..fest.js gzip | 156 B | 156 B | ✓ |
middleware.js gzip | 27.9 kB | 27.9 kB | N/A |
edge-runtime..pack.js gzip | 839 B | 839 B | ✓ |
Overall change | 1.62 kB | 1.62 kB | ✓ |
Next Runtimes Overall increase ⚠️
vercel/next.js canary | vercel/next.js wbinnssmith/client-components-node-modules | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 171 kB | 171 kB | N/A |
app-page-exp..prod.js gzip | 98.5 kB | 98.4 kB | N/A |
app-page-tur..prod.js gzip | 100 kB | 99.9 kB | N/A |
app-page-tur..prod.js gzip | 94.3 kB | 94.2 kB | N/A |
app-page.run...dev.js gzip | 157 kB | 157 kB | N/A |
app-page.run..prod.js gzip | 93 kB | 93 kB | N/A |
app-route-ex...dev.js gzip | 21.5 kB | 21.4 kB | N/A |
app-route-ex..prod.js gzip | 15.2 kB | 15.2 kB | N/A |
app-route-tu..prod.js gzip | 15.2 kB | 15.2 kB | N/A |
app-route-tu..prod.js gzip | 15 kB | 14.9 kB | N/A |
app-route.ru...dev.js gzip | 21.3 kB | 21.3 kB | N/A |
app-route.ru..prod.js gzip | 15 kB | 14.9 kB | N/A |
pages-api-tu..prod.js gzip | 9.55 kB | 9.55 kB | ✓ |
pages-api.ru...dev.js gzip | 9.82 kB | 9.82 kB | ✓ |
pages-api.ru..prod.js gzip | 9.55 kB | 9.55 kB | ✓ |
pages-turbo...prod.js gzip | 21.5 kB | 21.4 kB | N/A |
pages.runtim...dev.js gzip | 22.1 kB | 22.1 kB | N/A |
pages.runtim..prod.js gzip | 21.5 kB | 21.4 kB | N/A |
server.runti..prod.js gzip | 51.6 kB | 65.3 kB | |
Overall change | 80.5 kB | 94.2 kB |
build cache Overall increase ⚠️
vercel/next.js canary | vercel/next.js wbinnssmith/client-components-node-modules | Change | |
---|---|---|---|
0.pack gzip | 1.62 MB | 1.61 MB | N/A |
index.pack gzip | 112 kB | 112 kB | |
Overall change | 112 kB | 112 kB |
Diff details
Diff for page.js
Diff too large to display
Diff for edge-ssr.js
Diff too large to display
Diff for 1103-HASH.js
Diff too large to display
Diff for app-page-exp..ntime.dev.js
failed to diff
Diff for app-page-exp..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page.runtime.dev.js
Diff too large to display
Diff for app-page.runtime.prod.js
Diff too large to display
Diff for app-route-ex..ntime.dev.js
Diff too large to display
Diff for app-route-ex..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route.runtime.dev.js
Diff too large to display
Diff for app-route.ru..time.prod.js
Diff too large to display
Diff for pages-turbo...time.prod.js
Diff too large to display
Diff for pages.runtime.dev.js
Diff too large to display
Diff for pages.runtime.prod.js
Diff too large to display
Diff for server.runtime.prod.js
Diff too large to display
…mponents-node-modules
…utes Co-authored-by: OJ Kwon <1210596+kwonoj@users.noreply.github.com>
This extends #64520 to cover cases where client components originate from node_modules (foreign code).
Test Plan: Extended the integration test to cover this
Closes #64412
Fixes PACK-3014