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

Normalize asPath for GS(S)P pages #17081

Merged
merged 4 commits into from
Sep 14, 2020

Conversation

ijjk
Copy link
Member

@ijjk ijjk commented Sep 14, 2020

This normalizes the asPath for getServerSideProps and getStaticProps pages to ensure it matches the value that would show on the client instead of a) the output pathname when revalidating or generating a fallback or b) the _next/data URL on client transition.

Fixes: #16542

@ijjk
Copy link
Member Author

ijjk commented Sep 14, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
buildDuration 12.4s 12.7s ⚠️ +304ms
nodeModulesSize 60 MB 60 MB ⚠️ +3.17 kB
Page Load Tests Overall increase ✓
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
/ failed reqs 0 0
/ total time (seconds) 2.198 2.216 ⚠️ +0.02
/ avg req/sec 1137.4 1128.12 ⚠️ -9.28
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.263 1.209 -0.05
/error-in-render avg req/sec 1979.34 2067.18 +87.84
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-f56df72..b5c3.js gzip 7.02 kB 7.02 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.6 kB 57.6 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-dc9d41e..dule.js gzip 6.09 kB 6.09 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.6 kB 52.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Rendered Page Sizes
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
index.html gzip 1 kB 1 kB
link.html gzip 1.01 kB 1.01 kB
withRouter.html gzip 996 B 996 B
Overall change 3.01 kB 3.01 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
buildDuration 14s 14s -10ms
nodeModulesSize 60 MB 60 MB ⚠️ +3.17 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
677f882d2ed8..9339.js gzip 10.9 kB 10.9 kB
framework.HASH.js gzip 39 kB 39 kB
main-f56df72..b5c3.js gzip 7.02 kB 7.02 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 57.6 kB 57.6 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
677f882d2ed8..dule.js gzip 6.77 kB 6.77 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-dc9d41e..dule.js gzip 6.09 kB 6.09 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 52.6 kB 52.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
_app-9a0b9e1..b37e.js gzip 1.28 kB 1.28 kB
_error-ed1b0..8fbd.js gzip 3.44 kB 3.44 kB
hooks-89731c..c609.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d2344ce..8b36.js gzip 1.3 kB 1.3 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.71 kB 7.71 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-4469a..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-f8c0daf..dule.js gzip 1.26 kB 1.26 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.36 kB 5.36 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
_buildManifest.js gzip 322 B 322 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 651 B 651 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary ijjk/next.js normalize/revalidate-asPath Change
_error.js 1.03 MB 1.04 MB ⚠️ +614 B
404.html 4.34 kB 4.34 kB
hooks.html 3.92 kB 3.92 kB
index.js 1.04 MB 1.04 MB ⚠️ +614 B
link.js 1.08 MB 1.08 MB ⚠️ +614 B
routerDirect.js 1.07 MB 1.08 MB ⚠️ +614 B
withRouter.js 1.07 MB 1.08 MB ⚠️ +614 B
Overall change 5.31 MB 5.31 MB ⚠️ +3.07 kB
Commit: cb355ff

@kodiakhq kodiakhq bot merged commit 94a5bd6 into vercel:canary Sep 14, 2020
@Timer Timer deleted the normalize/revalidate-asPath branch September 14, 2020 16:48
kodiakhq bot pushed a commit that referenced this pull request Sep 14, 2020
This continues off of #17081 and provides this normalized `asPath` value in the context provided to `getServerSideProps` to provide the consistent value since the request URL can vary between direct visit and client transition and the alternative requires building the URL each time manually. 

Kept this change separate from #17081 since this is addressing a separate issue and allows discussion separately. 

Closes: #16407
HitoriSensei pushed a commit to HitoriSensei/next.js that referenced this pull request Sep 26, 2020
This normalizes the `asPath` for `getServerSideProps` and `getStaticProps` pages to ensure it matches the value that would show on the client instead of a) the output pathname when revalidating or generating a fallback or b) the `_next/data` URL on client transition. 

Fixes: vercel#16542
HitoriSensei pushed a commit to HitoriSensei/next.js that referenced this pull request Sep 26, 2020
This continues off of vercel#17081 and provides this normalized `asPath` value in the context provided to `getServerSideProps` to provide the consistent value since the request URL can vary between direct visit and client transition and the alternative requires building the URL each time manually. 

Kept this change separate from vercel#17081 since this is addressing a separate issue and allows discussion separately. 

Closes: vercel#16407
@vercel vercel locked as resolved and limited conversation to collaborators Jan 29, 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.

deploying to Vercel causes conditional statements to evaluate incorrectly
2 participants