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

Update to merge props from GSSP methods with _app pageProps #11709

Merged
merged 7 commits into from
Apr 7, 2020

Conversation

ijjk
Copy link
Member

@ijjk ijjk commented Apr 6, 2020

Currently, getStaticProps and getServerSideProps overrides any pageProps returned from _app. This updates to make sure we merge any pageProps passed from _app with the props from calling getStaticProps or getServerSideProps.

Closes: #11648

@ijjk ijjk added this to the 9.3.5 milestone Apr 6, 2020
@ijjk
Copy link
Member Author

ijjk commented Apr 6, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
buildDuration 10.7s 10.5s -210ms
nodeModulesSize 47.7 MB 47.7 MB ⚠️ +782 B
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
main-HASH.js gzip 6.25 kB 6.25 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..e3d8.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.3 kB 56.3 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.78 kB 6.78 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.5 kB 51.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
index.html gzip 918 B 918 B
link.html gzip 927 B 927 B
withRouter.html gzip 914 B 914 B
Overall change 2.76 kB 2.76 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
buildDuration 11.5s 11.4s -82ms
nodeModulesSize 47.7 MB 47.7 MB ⚠️ +782 B
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
main-HASH.js gzip 6.25 kB 6.25 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..e3d8.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.3 kB 56.3 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.78 kB 6.78 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.5 kB 51.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_error.js gzip 233 kB 233 kB ⚠️ +105 B
404.html gzip 1.32 kB 1.32 kB
hooks.html gzip 957 B 957 B
index.js gzip 233 kB 233 kB ⚠️ +70 B
link.js gzip 243 kB 243 kB ⚠️ +245 B
routerDirect.js gzip 241 kB 241 kB ⚠️ +84 B
withRouter.js gzip 241 kB 241 kB -196 B
Overall change 1.19 MB 1.19 MB ⚠️ +308 B

Copy link
Member

@timneutkens timneutkens left a comment

Choose a reason for hiding this comment

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

Looking at this again I think we need to merge the pageProps unfortunately. As returning pageProps from _app was a common pattern previously

@ijjk ijjk changed the title Add warning for pageProps GSSP conflict Update to props from GSSP methods with _app pageProps Apr 7, 2020
@ijjk ijjk changed the title Update to props from GSSP methods with _app pageProps Update to merge props from GSSP methods with _app pageProps Apr 7, 2020
@ijjk

This comment has been minimized.

@ijjk
Copy link
Member Author

ijjk commented Apr 7, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
buildDuration 11.5s 11.2s -249ms
nodeModulesSize 52.4 MB 52.4 MB ⚠️ +298 B
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
main-HASH.js gzip 6.25 kB 6.25 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..e3d8.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.3 kB 56.3 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.78 kB 6.78 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.5 kB 51.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
index.html gzip 916 B 916 B
link.html gzip 925 B 925 B
withRouter.html gzip 914 B 914 B
Overall change 2.75 kB 2.75 kB

Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
buildDuration 12.3s 12.1s -200ms
nodeModulesSize 52.4 MB 52.4 MB ⚠️ +298 B
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
main-HASH.js gzip 6.25 kB 6.25 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..e3d8.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.3 kB 56.3 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.78 kB 6.78 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.5 kB 51.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall decrease ✓
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_error.js gzip 233 kB 233 kB ⚠️ +15 B
404.html gzip 1.32 kB 1.32 kB
hooks.html gzip 956 B 956 B
index.js gzip 233 kB 233 kB -238 B
link.js gzip 243 kB 243 kB -267 B
routerDirect.js gzip 241 kB 241 kB ⚠️ +12 B
withRouter.js gzip 241 kB 241 kB -15 B
Overall change 1.19 MB 1.19 MB -493 B

@ijjk ijjk requested a review from timneutkens April 7, 2020 14:53
Copy link
Member

@Timer Timer left a comment

Choose a reason for hiding this comment

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

Let's not mutate the user's object. Also, how about the fallback page?

packages/next/next-server/server/render.tsx Outdated Show resolved Hide resolved
packages/next/next-server/server/render.tsx Outdated Show resolved Hide resolved
@ijjk
Copy link
Member Author

ijjk commented Apr 7, 2020

how about the fallback page

The fallback page isn't supposed to receive any props right?

@ijjk ijjk requested a review from Timer April 7, 2020 15:16
@ijjk
Copy link
Member Author

ijjk commented Apr 7, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
buildDuration 11s 11.3s ⚠️ +274ms
nodeModulesSize 52.4 MB 52.4 MB ⚠️ +144 B
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
main-HASH.js gzip 6.25 kB 6.25 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..e3d8.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.3 kB 56.3 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.78 kB 6.78 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.5 kB 51.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
index.html gzip 916 B 916 B
link.html gzip 925 B 925 B
withRouter.html gzip 914 B 914 B
Overall change 2.75 kB 2.75 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
buildDuration 11.8s 11.7s -110ms
nodeModulesSize 52.4 MB 52.4 MB ⚠️ +144 B
Client Bundles (main, webpack, commons)
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
main-HASH.js gzip 6.25 kB 6.25 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..e3d8.js gzip 10.2 kB 10.2 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.3 kB 56.3 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.78 kB 6.78 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.5 kB 51.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary ijjk/next.js add/pageProps-gssp-warning Change
_error.js gzip 233 kB 233 kB ⚠️ +212 B
404.html gzip 1.32 kB 1.32 kB
hooks.html gzip 956 B 956 B
index.js gzip 233 kB 233 kB ⚠️ +338 B
link.js gzip 243 kB 243 kB -73 B
routerDirect.js gzip 241 kB 241 kB ⚠️ +151 B
withRouter.js gzip 241 kB 241 kB -269 B
Overall change 1.19 MB 1.19 MB ⚠️ +359 B

@vercel vercel locked as resolved and limited conversation to collaborators Jan 31, 2022
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.

getStaticProps and pages/_app
3 participants