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

Add prerender PageConfig option #7699

Merged
merged 9 commits into from
Jul 1, 2019
Merged

Add prerender PageConfig option #7699

merged 9 commits into from
Jul 1, 2019

Conversation

ijjk
Copy link
Member

@ijjk ijjk commented Jun 28, 2019

This allows signifying a page should be pre-rendered during build even though it uses getInitialProps.

Adds prerender option to PageConfig with values of true, inline, or legacy.

For true and inline the data will be inlined in the client bundle for the page removing the need to refetch the data on a client transition. In legacy the current next export behavior is maintained of inlining the initial data and then calling getInitialProps on a client transition.

@github-actions
Copy link
Contributor

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/prerender Change
Build Duration 13.5s 13.2s -312ms
node_modules Size 41.3 MB 41.3 MB ⚠️ +89 B
Total Bundle (main, webpack, commons) Size 213 kB 213 kB
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.1 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB ⚠️ +1 B
Client _error Size 8.8 kB 8.8 kB
Client _error gzip Size 3.31 kB 3.31 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 224 B 222 B -2 B
Client pages/link Size 4.86 kB 4.86 kB
Client pages/link gzip Size 2.08 kB 2.08 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.6 kB
Client main gzip Size 9.14 kB 9.14 kB ⚠️ +1 B
Client commons Size 183 kB 183 kB
Client commons gzip Size 59.6 kB 59.6 kB
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.34 kB 1.34 kB
Build Dir Size 805 kB 805 kB
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/prerender Change
Build Duration 14.3s 14.3s -31ms
node_modules Size 41.3 MB 41.3 MB ⚠️ +89 B
Total Bundle (main, webpack, commons) Size 213 kB 213 kB
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.1 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.8 kB 8.8 kB
Client _error gzip Size 3.31 kB 3.31 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.86 kB 4.86 kB
Client pages/link gzip Size 2.08 kB 2.08 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.6 kB
Client main gzip Size 9.14 kB 9.14 kB
Client commons Size 183 kB 183 kB
Client commons gzip Size 59.6 kB 59.6 kB
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size 340 kB 340 kB ⚠️ +20 B
Serverless pages/link gzip Size 87.2 kB 87.2 kB ⚠️ +10 B
Serverless pages/index Size 331 kB 331 kB ⚠️ +20 B
Serverless pages/index gzip Size 84.7 kB 84.7 kB ⚠️ +15 B
Serverless pages/_error Size 330 kB 330 kB ⚠️ +20 B
Serverless pages/_error gzip Size 84.4 kB 84.4 kB ⚠️ +14 B
Serverless pages/routerDirect Size 331 kB 331 kB ⚠️ +20 B
Serverless pages/routerDirect gzip Size 84.7 kB 84.7 kB ⚠️ +12 B
Serverless pages/withRouter Size 331 kB 331 kB ⚠️ +20 B
Serverless pages/withRouter gzip Size 84.6 kB 84.7 kB ⚠️ +17 B
Build Dir Size 2.3 MB 2.3 MB ⚠️ +100 B

@github-actions
Copy link
Contributor

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/prerender Change
Build Duration 12.5s 11.5s -1.1s
node_modules Size 41.3 MB 41.3 MB ⚠️ +23 B
Total Bundle (main, webpack, commons) Size 213 kB 213 kB
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.1 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.8 kB 8.8 kB
Client _error gzip Size 3.31 kB 3.31 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.86 kB 4.86 kB
Client pages/link gzip Size 2.08 kB 2.08 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.6 kB
Client main gzip Size 9.14 kB 9.14 kB
Client commons Size 183 kB 183 kB
Client commons gzip Size 59.6 kB 59.6 kB
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.34 kB 1.34 kB
Build Dir Size 805 kB 805 kB
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/prerender Change
Build Duration 12.2s 13s ⚠️ +747ms
node_modules Size 41.3 MB 41.3 MB ⚠️ +23 B
Total Bundle (main, webpack, commons) Size 213 kB 213 kB
Total Bundle (main, webpack, commons) gzip Size 70.1 kB 70.1 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.8 kB 8.8 kB
Client _error gzip Size 3.31 kB 3.31 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.86 kB 4.86 kB
Client pages/link gzip Size 2.08 kB 2.08 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.6 kB
Client main gzip Size 9.14 kB 9.14 kB
Client commons Size 183 kB 183 kB
Client commons gzip Size 59.6 kB 59.6 kB
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size 340 kB 340 kB ⚠️ +20 B
Serverless pages/link gzip Size 87.2 kB 87.2 kB ⚠️ +11 B
Serverless pages/index Size 331 kB 331 kB ⚠️ +20 B
Serverless pages/index gzip Size 84.7 kB 84.7 kB ⚠️ +15 B
Serverless pages/_error Size 330 kB 330 kB ⚠️ +20 B
Serverless pages/_error gzip Size 84.4 kB 84.4 kB ⚠️ +13 B
Serverless pages/routerDirect Size 331 kB 331 kB ⚠️ +20 B
Serverless pages/routerDirect gzip Size 84.7 kB 84.7 kB ⚠️ +13 B
Serverless pages/withRouter Size 331 kB 331 kB ⚠️ +20 B
Serverless pages/withRouter gzip Size 84.6 kB 84.7 kB ⚠️ +17 B
Build Dir Size 2.3 MB 2.3 MB ⚠️ +100 B

@ijjk ijjk changed the title [WIP] Add prerender PageConfig option Add prerender PageConfig option Jul 1, 2019
@github-actions
Copy link
Contributor

github-actions bot commented Jul 1, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/prerender Change
Build Duration 13.4s 13s -402ms
node_modules Size 45.3 MB 45.3 MB ⚠️ +5.07 kB
Total Bundle (main, webpack, commons) Size 213 kB 213 kB ⚠️ +69 B
Total Bundle (main, webpack, commons) gzip Size 70 kB 70.1 kB ⚠️ +19 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.6 kB
Client main gzip Size 9.14 kB 9.14 kB
Client commons Size 183 kB 183 kB ⚠️ +69 B
Client commons gzip Size 59.6 kB 59.6 kB ⚠️ +19 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.36 kB 1.36 kB
Build Dir Size 737 kB 756 kB ⚠️ +19.5 kB
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/prerender Change
Build Duration 14s 15.5s ⚠️ +1.6s
node_modules Size 45.3 MB 45.3 MB ⚠️ +5.07 kB
Total Bundle (main, webpack, commons) Size 213 kB 213 kB ⚠️ +69 B
Total Bundle (main, webpack, commons) gzip Size 70 kB 70.1 kB ⚠️ +19 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB ⚠️ +1 B
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 224 B 222 B -2 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB ⚠️ +1 B
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.6 kB
Client main gzip Size 9.14 kB 9.14 kB ⚠️ +1 B
Client commons Size 183 kB 183 kB ⚠️ +69 B
Client commons gzip Size 59.6 kB 59.6 kB ⚠️ +19 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size Error getting size Error getting size
Serverless pages/link gzip Size Error getting size Error getting size
Serverless pages/index Size Error getting size Error getting size
Serverless pages/index gzip Size Error getting size Error getting size
Serverless pages/_error Size 329 kB 329 kB ⚠️ +365 B
Serverless pages/_error gzip Size 84.1 kB 84.2 kB ⚠️ +117 B
Serverless pages/routerDirect Size Error getting size Error getting size
Serverless pages/routerDirect gzip Size Error getting size Error getting size
Serverless pages/withRouter Size Error getting size Error getting size
Serverless pages/withRouter gzip Size Error getting size Error getting size
Build Dir Size 975 kB 1.06 MB ⚠️ +82.5 kB

@github-actions
Copy link
Contributor

github-actions bot commented Jul 1, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/prerender Change
Build Duration 15s 14.9s -67ms
node_modules Size 45.3 MB 45.3 MB ⚠️ +5.1 kB
Total Bundle (main, webpack, commons) Size 213 kB 213 kB ⚠️ +72 B
Total Bundle (main, webpack, commons) gzip Size 70 kB 70.1 kB ⚠️ +20 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.6 kB
Client main gzip Size 9.14 kB 9.14 kB
Client commons Size 183 kB 183 kB ⚠️ +72 B
Client commons gzip Size 59.6 kB 59.6 kB ⚠️ +20 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.36 kB 1.36 kB
Build Dir Size 737 kB 756 kB ⚠️ +19.5 kB
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/prerender Change
Build Duration 16.3s 17.8s ⚠️ +1.5s
node_modules Size 45.3 MB 45.3 MB ⚠️ +5.1 kB
Total Bundle (main, webpack, commons) Size 213 kB 213 kB ⚠️ +72 B
Total Bundle (main, webpack, commons) gzip Size 70 kB 70.1 kB ⚠️ +20 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.6 kB
Client main gzip Size 9.14 kB 9.14 kB
Client commons Size 183 kB 183 kB ⚠️ +72 B
Client commons gzip Size 59.6 kB 59.6 kB ⚠️ +20 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size Error getting size Error getting size
Serverless pages/link gzip Size Error getting size Error getting size
Serverless pages/index Size Error getting size Error getting size
Serverless pages/index gzip Size Error getting size Error getting size
Serverless pages/_error Size 329 kB 329 kB ⚠️ +383 B
Serverless pages/_error gzip Size 84.1 kB 84.2 kB ⚠️ +126 B
Serverless pages/routerDirect Size Error getting size Error getting size
Serverless pages/routerDirect gzip Size Error getting size Error getting size
Serverless pages/withRouter Size Error getting size Error getting size
Serverless pages/withRouter gzip Size Error getting size Error getting size
Build Dir Size 975 kB 1.06 MB ⚠️ +82.6 kB

@github-actions
Copy link
Contributor

github-actions bot commented Jul 1, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/prerender Change
Build Duration 14s 13.6s -387ms
node_modules Size 45.2 MB 45.2 MB ⚠️ +5.3 kB
Total Bundle (main, webpack, commons) Size 213 kB 213 kB ⚠️ +72 B
Total Bundle (main, webpack, commons) gzip Size 70 kB 70.1 kB ⚠️ +20 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB -1 B
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 224 B ⚠️ +2 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB -1 B
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.6 kB
Client main gzip Size 9.14 kB 9.14 kB -1 B
Client commons Size 183 kB 183 kB ⚠️ +72 B
Client commons gzip Size 59.6 kB 59.6 kB ⚠️ +20 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.36 kB 1.36 kB
Build Dir Size 737 kB 756 kB ⚠️ +19.5 kB
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/prerender Change
Build Duration 14.7s 16.1s ⚠️ +1.4s
node_modules Size 45.2 MB 45.2 MB ⚠️ +5.3 kB
Total Bundle (main, webpack, commons) Size 213 kB 213 kB ⚠️ +72 B
Total Bundle (main, webpack, commons) gzip Size 70 kB 70.1 kB ⚠️ +20 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.6 kB
Client main gzip Size 9.14 kB 9.14 kB
Client commons Size 183 kB 183 kB ⚠️ +72 B
Client commons gzip Size 59.6 kB 59.6 kB ⚠️ +20 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size Error getting size Error getting size
Serverless pages/link gzip Size Error getting size Error getting size
Serverless pages/index Size Error getting size Error getting size
Serverless pages/index gzip Size Error getting size Error getting size
Serverless pages/_error Size 329 kB 329 kB ⚠️ +431 B
Serverless pages/_error gzip Size 84.1 kB 84.2 kB ⚠️ +135 B
Serverless pages/routerDirect Size Error getting size Error getting size
Serverless pages/routerDirect gzip Size Error getting size Error getting size
Serverless pages/withRouter Size Error getting size Error getting size
Serverless pages/withRouter gzip Size Error getting size Error getting size
Build Dir Size 975 kB 1.06 MB ⚠️ +82.6 kB

@github-actions
Copy link
Contributor

github-actions bot commented Jul 1, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary ijjk/next.js add/prerender Change
Build Duration 14.8s 14.7s -108ms
node_modules Size 45.2 MB 45.2 MB ⚠️ +5.3 kB
Total Bundle (main, webpack, commons) Size 213 kB 213 kB ⚠️ +72 B
Total Bundle (main, webpack, commons) gzip Size 70 kB 70.1 kB ⚠️ +20 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.6 kB
Client main gzip Size 9.14 kB 9.14 kB
Client commons Size 183 kB 183 kB ⚠️ +72 B
Client commons gzip Size 59.6 kB 59.6 kB ⚠️ +20 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.36 kB 1.36 kB
Build Dir Size 737 kB 756 kB ⚠️ +19.5 kB
Click to expand serverless stats
zeit/next.js canary ijjk/next.js add/prerender Change
Build Duration 15.7s 17s ⚠️ +1.3s
node_modules Size 45.2 MB 45.2 MB ⚠️ +5.3 kB
Total Bundle (main, webpack, commons) Size 213 kB 213 kB ⚠️ +72 B
Total Bundle (main, webpack, commons) gzip Size 70 kB 70.1 kB ⚠️ +20 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.44 kB 8.44 kB
Client _error gzip Size 3.23 kB 3.23 kB
Client pages/index Size 296 B 296 B
Client pages/index gzip Size 222 B 222 B
Client pages/link Size 4.74 kB 4.74 kB
Client pages/link gzip Size 2.02 kB 2.02 kB
Client pages/routerDirect Size 411 B 411 B
Client pages/routerDirect gzip Size 296 B 296 B
Client pages/withRouter Size 393 B 393 B
Client pages/withRouter gzip Size 280 B 280 B
Client main Size 27.6 kB 27.6 kB
Client main gzip Size 9.14 kB 9.14 kB
Client commons Size 183 kB 183 kB ⚠️ +72 B
Client commons gzip Size 59.6 kB 59.6 kB ⚠️ +20 B
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size Error getting size Error getting size
Serverless pages/link gzip Size Error getting size Error getting size
Serverless pages/index Size Error getting size Error getting size
Serverless pages/index gzip Size Error getting size Error getting size
Serverless pages/_error Size 329 kB 329 kB ⚠️ +431 B
Serverless pages/_error gzip Size 84.1 kB 84.2 kB ⚠️ +133 B
Serverless pages/routerDirect Size Error getting size Error getting size
Serverless pages/routerDirect gzip Size Error getting size Error getting size
Serverless pages/withRouter Size Error getting size Error getting size
Serverless pages/withRouter gzip Size Error getting size Error getting size
Build Dir Size 975 kB 1.06 MB ⚠️ +82.6 kB

@ijjk ijjk merged commit 0ca8087 into vercel:canary Jul 1, 2019
@ijjk ijjk deleted the add/prerender branch July 1, 2019 21:13
ijjk added a commit to ijjk/next.js that referenced this pull request Jul 2, 2019
@vercel vercel locked as resolved and limited conversation to collaborators Feb 1, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant