Skip to content
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

feat(transforms): enable rsc transforms for the remaining contexts #61231

Merged
merged 6 commits into from Feb 6, 2024

Conversation

kwonoj
Copy link
Contributor

@kwonoj kwonoj commented Jan 26, 2024

What?

This PR wraps up supporting rsc transforms (mostly for the assertion) in Turbopack. PR contains a few changes to support it, including:

  • adjust / expand transform rules for the corresponding contexts
  • fix file name / node_modules check
  • extract visitors for the assertion / transforms

This change enables most of the rsc-build* tests and some more other tests. The only failing tests in the rsc-build-errors is due to Turbopack not triggering hmr with empty file.

Closes PACK-2303

@ijjk ijjk added Turbopack Related to Turbopack with Next.js. created-by: Turbopack team PRs by the turbopack team type: next labels Jan 26, 2024
@kwonoj kwonoj changed the title feat(next-core): enable rsc transforms for the remaining contexts [DONOTMERGE] [WIP] feat(next-core): enable rsc transforms for the remaining contexts Jan 26, 2024
@ijjk
Copy link
Member

ijjk commented Jan 26, 2024

Tests Passed

@ijjk
Copy link
Member

ijjk commented Jan 26, 2024

Stats from current PR

Default Build
General
vercel/next.js canary vercel/next.js rsc-transforms-redux Change
buildDuration 11.8s 11.9s N/A
buildDurationCached 6.1s 5.6s N/A
nodeModulesSize 200 MB 200 MB
nextStartRea..uration (ms) 409ms 407ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js rsc-transforms-redux Change
3f784ff6-HASH.js gzip 53.4 kB 53.4 kB
423.HASH.js gzip 185 B 181 B N/A
68-HASH.js gzip 29.8 kB 29.8 kB N/A
framework-HASH.js gzip 45.2 kB 45.2 kB
main-app-HASH.js gzip 238 B 240 B N/A
main-HASH.js gzip 31.8 kB 31.8 kB N/A
webpack-HASH.js gzip 1.7 kB 1.7 kB
Overall change 100 kB 100 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js rsc-transforms-redux Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js rsc-transforms-redux Change
_app-HASH.js gzip 194 B 195 B N/A
_error-HASH.js gzip 182 B 181 B N/A
amp-HASH.js gzip 502 B 501 B N/A
css-HASH.js gzip 320 B 322 B N/A
dynamic-HASH.js gzip 2.5 kB 2.5 kB N/A
edge-ssr-HASH.js gzip 255 B 256 B N/A
head-HASH.js gzip 350 B 349 B N/A
hooks-HASH.js gzip 368 B 369 B N/A
image-HASH.js gzip 4.18 kB 4.18 kB N/A
index-HASH.js gzip 257 B 256 B N/A
link-HASH.js gzip 2.61 kB 2.61 kB N/A
routerDirect..HASH.js gzip 310 B 311 B N/A
script-HASH.js gzip 384 B 383 B N/A
withRouter-HASH.js gzip 306 B 308 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 106 B 106 B
Client Build Manifests
vercel/next.js canary vercel/next.js rsc-transforms-redux Change
_buildManifest.js gzip 482 B 482 B
Overall change 482 B 482 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js rsc-transforms-redux Change
index.html gzip 528 B 528 B
link.html gzip 540 B 541 B N/A
withRouter.html gzip 523 B 523 B
Overall change 1.05 kB 1.05 kB
Edge SSR bundle Size
vercel/next.js canary vercel/next.js rsc-transforms-redux Change
edge-ssr.js gzip 94 kB 94.1 kB N/A
page.js gzip 150 kB 150 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js rsc-transforms-redux Change
middleware-b..fest.js gzip 621 B 622 B N/A
middleware-r..fest.js gzip 151 B 149 B N/A
middleware.js gzip 37.6 kB 37.6 kB N/A
edge-runtime..pack.js gzip 1.92 kB 1.92 kB
Overall change 1.92 kB 1.92 kB
Next Runtimes
vercel/next.js canary vercel/next.js rsc-transforms-redux Change
app-page-exp...dev.js gzip 170 kB 170 kB
app-page-exp..prod.js gzip 95.8 kB 95.8 kB
app-page-tur..prod.js gzip 96.4 kB 96.4 kB
app-page-tur..prod.js gzip 91 kB 91 kB
app-page.run...dev.js gzip 142 kB 142 kB
app-page.run..prod.js gzip 90.3 kB 90.3 kB
app-route-ex...dev.js gzip 22.2 kB 22.2 kB
app-route-ex..prod.js gzip 14.9 kB 14.9 kB
app-route-tu..prod.js gzip 14.9 kB 14.9 kB
app-route-tu..prod.js gzip 14.5 kB 14.5 kB
app-route.ru...dev.js gzip 21.7 kB 21.7 kB
app-route.ru..prod.js gzip 14.5 kB 14.5 kB
pages-api-tu..prod.js gzip 9.43 kB 9.43 kB
pages-api.ru...dev.js gzip 9.7 kB 9.7 kB
pages-api.ru..prod.js gzip 9.43 kB 9.43 kB
pages-turbo...prod.js gzip 22 kB 22 kB
pages.runtim...dev.js gzip 22.7 kB 22.7 kB
pages.runtim..prod.js gzip 22 kB 22 kB
server.runti..prod.js gzip 49.7 kB 49.7 kB
Overall change 933 kB 933 kB
Commit: 3441a14

@kwonoj kwonoj force-pushed the rsc-transforms-redux branch 17 times, most recently from d1c95a3 to c564aae Compare January 29, 2024 22:44
@kwonoj kwonoj force-pushed the rsc-transforms-redux branch 6 times, most recently from 8897694 to 3a5018b Compare February 3, 2024 00:28
@kwonoj kwonoj force-pushed the rsc-transforms-redux branch 4 times, most recently from d9a17e5 to 9f3a533 Compare February 5, 2024 16:58
@kwonoj kwonoj changed the title [DONOTMERGE] [WIP] feat(next-core): enable rsc transforms for the remaining contexts enable rsc transforms for the remaining contexts Feb 5, 2024
@kwonoj kwonoj changed the title enable rsc transforms for the remaining contexts feat(transforms): enable rsc transforms for the remaining contexts Feb 5, 2024
"Error overlay - RSC build errors should throw an error when getServerSideProps is used",
"Error overlay - RSC build errors should throw an error when metadata export is used in client components",
"Error overlay - RSC build errors should throw an error when metadata exports are used together in server components"
],
"failed": [
"Error overlay - RSC build errors should throw an error when error file is a server component with empty error file"
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This actually raises correct error, however turbopack does not trigger hmr if error.js is empty.

@kwonoj kwonoj marked this pull request as ready for review February 5, 2024 17:50
@kwonoj kwonoj merged commit e652a6f into canary Feb 6, 2024
70 checks passed
@kwonoj kwonoj deleted the rsc-transforms-redux branch February 6, 2024 17:15
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 21, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
created-by: Turbopack team PRs by the turbopack team locked Turbopack Related to Turbopack with Next.js. type: next
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants