-
Notifications
You must be signed in to change notification settings - Fork 27.2k
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
fix setAssetPrefix when running on NextCustomServer #61676
fix setAssetPrefix when running on NextCustomServer #61676
Conversation
Stats from current PRDefault BuildGeneral Overall increase
|
vercel/next.js canary | alyahmedaly/next.js fix/setAssetPrefix-with-nextCustomServer | Change | |
---|---|---|---|
buildDuration | 11.9s | 12s | N/A |
buildDurationCached | 6.2s | 5.6s | N/A |
nodeModulesSize | 200 MB | 200 MB | |
nextStartRea..uration (ms) | 405ms | 408ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | alyahmedaly/next.js fix/setAssetPrefix-with-nextCustomServer | 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 | alyahmedaly/next.js fix/setAssetPrefix-with-nextCustomServer | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | alyahmedaly/next.js fix/setAssetPrefix-with-nextCustomServer | 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.19 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 | alyahmedaly/next.js fix/setAssetPrefix-with-nextCustomServer | Change | |
---|---|---|---|
_buildManifest.js gzip | 483 B | 484 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | alyahmedaly/next.js fix/setAssetPrefix-with-nextCustomServer | Change | |
---|---|---|---|
index.html gzip | 528 B | 528 B | ✓ |
link.html gzip | 539 B | 538 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 | alyahmedaly/next.js fix/setAssetPrefix-with-nextCustomServer | 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 | alyahmedaly/next.js fix/setAssetPrefix-with-nextCustomServer | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 622 B | 624 B | N/A |
middleware-r..fest.js gzip | 151 B | 149 B | N/A |
middleware.js gzip | 37.7 kB | 37.7 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 | alyahmedaly/next.js fix/setAssetPrefix-with-nextCustomServer | 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 | ✓ |
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.
Thanks for the PR! Went ahead and enabled our custom-server test suite again which ensures we don't regress on this.
Nice - and fwiw, I think it allows us to tap into the internals of the Next server by accessing |
Still seeing next.config.js assetPrefix value coming in for some of the chunks. |
@gaojude just a heads up any internals accessed are not covered by semver only public APIs. |
is it due to the use of
|
See here #59940 (comment) for a deeper explanation why changing the |
What?
Fixes
setAssetPrefix
when running on a custom server using next() functionWhy?
Looks like when we run next custom server, there are 2 instances created to handle this case
/server/next.ts
./server/lib/render-server.ts
The issue mainly happens when calling
setAssetPrefix
it will update only the main server and not render serverHow?
when calling
setAssetPrefix
on the main server also update the render server with the same information.Fixes: #59940
Fixes: #51223
Fixes: #61383
Related Resources
#53523 #49805
https://github.com/vercel/next.js/blob/c9c6ff6d77d3f7b61b955452bd31ec84c5e71cf0/docs/03-pages/01-building-your-application/06-configuring/10-custom-server.mdx