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

Move App Router client-side constants to separate file #59239

Conversation

timneutkens
Copy link
Member

@timneutkens timneutkens commented Dec 4, 2023

What?

Noticed constants.js was included in the client-side bundle. This ensures only the needed constants are included.

How?

Created a separate file for client-side constants.

Closes NEXT-1789

@timneutkens
Copy link
Member Author

Current dependencies on/for this PR:

This stack of pull requests is managed by Graphite.

@ijjk
Copy link
Member

ijjk commented Dec 4, 2023

Stats from current PR

Default Build
General
vercel/next.js canary vercel/next.js 12-04-Move_App_Router_client-side_constants_to_separate_file Change
buildDuration 10.6s 10.8s ⚠️ +150ms
buildDurationCached 5.8s 6.5s ⚠️ +652ms
nodeModulesSize 200 MB 199 MB N/A
nextStartRea..uration (ms) 419ms 421ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js 12-04-Move_App_Router_client-side_constants_to_separate_file Change
170-HASH.js gzip 30.3 kB 27.1 kB N/A
199.HASH.js gzip 181 B 181 B
3f784ff6-HASH.js gzip 53.3 kB 53.3 kB
framework-HASH.js gzip 45.2 kB 45.2 kB
main-app-HASH.js gzip 240 B 240 B
main-HASH.js gzip 31.7 kB 31.6 kB N/A
webpack-HASH.js gzip 1.7 kB 1.7 kB
Overall change 101 kB 101 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js 12-04-Move_App_Router_client-side_constants_to_separate_file Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js 12-04-Move_App_Router_client-side_constants_to_separate_file Change
_app-HASH.js gzip 195 B 195 B
_error-HASH.js gzip 183 B 181 B N/A
amp-HASH.js gzip 501 B 503 B N/A
css-HASH.js gzip 321 B 323 B N/A
dynamic-HASH.js gzip 2.5 kB 2.5 kB
edge-ssr-HASH.js gzip 255 B 255 B
head-HASH.js gzip 349 B 347 B N/A
hooks-HASH.js gzip 368 B 368 B
image-HASH.js gzip 4.27 kB 4.27 kB N/A
index-HASH.js gzip 255 B 256 B N/A
link-HASH.js gzip 2.6 kB 2.6 kB N/A
routerDirect..HASH.js gzip 311 B 311 B
script-HASH.js gzip 384 B 383 B N/A
withRouter-HASH.js gzip 307 B 308 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.73 kB 3.73 kB
Client Build Manifests
vercel/next.js canary vercel/next.js 12-04-Move_App_Router_client-side_constants_to_separate_file Change
_buildManifest.js gzip 483 B 483 B
Overall change 483 B 483 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js 12-04-Move_App_Router_client-side_constants_to_separate_file Change
index.html gzip 528 B 526 B N/A
link.html gzip 541 B 540 B N/A
withRouter.html gzip 524 B 522 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js 12-04-Move_App_Router_client-side_constants_to_separate_file Change
edge-ssr.js gzip 93.5 kB 92.7 kB N/A
page.js gzip 146 kB 145 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js 12-04-Move_App_Router_client-side_constants_to_separate_file Change
middleware-b..fest.js gzip 621 B 625 B N/A
middleware-r..fest.js gzip 151 B 151 B
middleware.js gzip 37.5 kB 35.6 kB N/A
edge-runtime..pack.js gzip 1.92 kB 1.92 kB
Overall change 2.07 kB 2.07 kB
Next Runtimes
vercel/next.js canary vercel/next.js 12-04-Move_App_Router_client-side_constants_to_separate_file Change
app-page-exp...dev.js gzip 168 kB 168 kB N/A
app-page-exp..prod.js gzip 94 kB 93.7 kB N/A
app-page-tur..prod.js gzip 94.7 kB 94.5 kB N/A
app-page-tur..prod.js gzip 89.3 kB 89 kB N/A
app-page.run...dev.js gzip 138 kB 138 kB N/A
app-page.run..prod.js gzip 88.6 kB 88.4 kB N/A
app-route-ex...dev.js gzip 24.1 kB 24 kB N/A
app-route-ex..prod.js gzip 16.8 kB 16.7 kB N/A
app-route-tu..prod.js gzip 16.8 kB 16.7 kB N/A
app-route-tu..prod.js gzip 16.4 kB 16.3 kB N/A
app-route.ru...dev.js gzip 23.6 kB 23.5 kB N/A
app-route.ru..prod.js gzip 16.4 kB 16.3 kB N/A
pages-api-tu..prod.js gzip 9.37 kB 9.37 kB
pages-api.ru...dev.js gzip 9.64 kB 9.64 kB
pages-api.ru..prod.js gzip 9.37 kB 9.37 kB
pages-turbo...prod.js gzip 21.9 kB 21.9 kB N/A
pages.runtim...dev.js gzip 22.6 kB 22.6 kB N/A
pages.runtim..prod.js gzip 21.9 kB 21.9 kB N/A
server.runti..prod.js gzip 49.4 kB 49.3 kB N/A
Overall change 28.4 kB 28.4 kB
Diff details
Diff for page.js

Diff too large to display

Diff for middleware.js

Diff too large to display

Diff for edge-ssr.js

Diff too large to display

Diff for 170-HASH.js

Diff too large to display

Diff for main-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
failed to diff
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

Commit: 3b0239f

@wyattjoh
Copy link
Member

wyattjoh commented Dec 4, 2023

Maybe as an alternative, we stop using the src/shared/constants for client constants? Anything client side could be defined in a src/client/constants and then in a sr/server/constants we just re-export all the client constants as well? That way we get the correct bundles without having to create all these separate constants files?

@timneutkens timneutkens merged commit 4f67cbf into canary Dec 6, 2023
69 checks passed
@timneutkens timneutkens deleted the 12-04-Move_App_Router_client-side_constants_to_separate_file branch December 6, 2023 11:07
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 20, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants