-
Notifications
You must be signed in to change notification settings - Fork 27k
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
Initial optimizeLibraries experimental flag #8345
Initial optimizeLibraries experimental flag #8345
Conversation
Stats from current PRDefault Server ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Fetched pages
Serverless ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Serverless bundles
|
Stats from current PRDefault Server ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Fetched pages
Serverless ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Serverless bundles
|
Stats from current PRDefault Server ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Fetched pages
Serverless ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Serverless bundles
|
Stats from current PRDefault Server ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Fetched pages
Serverless ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Serverless bundles
|
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.
This plugin must always be enabled, otherwise dev will have the locales and production wont.
Stats from current PRDefault Server ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Fetched pages
Serverless ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Serverless bundles
|
Stats from current PRDefault Server ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Fetched pages
Serverless ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Serverless bundles
|
Stats from current PRDefault Server ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Fetched pages
Serverless ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Serverless bundles
|
Stats from current PRDefault Server ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Fetched pages
Serverless ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Client Pages
Client Pages Modern
Serverless bundles
|
Stats from current PRDefault Server Mode (
|
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
buildDuration | 18.7s | 19.7s | |
nodeModulesSize | 41.2 MB | 41.2 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.js | 13.8 kB | 13.8 kB | ✓ |
main-HASH.js gzip | 4.87 kB | 4.87 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
commons.HASH.js | 194 kB | 194 kB | ✓ |
commons.HASH.js gzip | 63.1 kB | 63.1 kB | ✓ |
Overall change | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.module.js | 11.4 kB | 11.4 kB | ✓ |
main-HASH.module.js gzip | 4.31 kB | 4.31 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
commons.HASH.module.js | 175 kB | 175 kB | ✓ |
commons.HASH.module.js gzip | 57.1 kB | 57.1 kB | ✓ |
Overall change | ✓ |
Client Pages
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.js | 1.9 kB | 1.9 kB | ✓ |
_app.js gzip | 905 B | 905 B | ✓ |
_error.js | 8.02 kB | 8.02 kB | ✓ |
_error.js gzip | 3.12 kB | 3.12 kB | ✓ |
index.js | 343 B | 343 B | ✓ |
index.js gzip | 237 B | 237 B | ✓ |
link.js | 4.07 kB | 4.07 kB | ✓ |
link.js gzip | 1.79 kB | 1.79 kB | ✓ |
routerDirect.js | 423 B | 423 B | ✓ |
routerDirect.js gzip | 290 B | 290 B | ✓ |
withRouter.js | 435 B | 435 B | ✓ |
withRouter.js gzip | 287 B | 286 B | -1 B |
Overall change | ✓ |
Client Pages Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.module.js | 1.79 kB | 1.79 kB | ✓ |
_app.module.js gzip | 865 B | 865 B | ✓ |
_error.module.js | 5.82 kB | 5.82 kB | ✓ |
_error.module.js gzip | 2.33 kB | 2.33 kB | ✓ |
index.module.js | 319 B | 319 B | ✓ |
index.module.js gzip | 238 B | 238 B | ✓ |
link.module.js | 3.78 kB | 3.78 kB | ✓ |
link.module.js gzip | 1.7 kB | 1.7 kB | -1 B |
routerDirect.module.js | 411 B | 411 B | ✓ |
routerDirect.module.js gzip | 291 B | 291 B | ✓ |
withRouter.module.js | 423 B | 423 B | ✓ |
withRouter.module.js gzip | 288 B | 288 B | ✓ |
Overall change | ✓ |
Fetched pages
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
link | 2.81 kB | 2.81 kB | ✓ |
link gzip | 845 B | 847 B | |
index | 2.76 kB | 2.76 kB | ✓ |
index gzip | 836 B | 837 B | |
withRouter | 2.82 kB | 2.82 kB | ✓ |
withRouter gzip | 834 B | 836 B | |
Overall change | ✓ |
Serverless Mode (⚠️ Increase detected ⚠️ )
General ⚠️ Overall increase ⚠️
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
buildDuration | 20.1s | 20.8s | |
nodeModulesSize | 41.2 MB | 41.2 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.js | 13.8 kB | 13.8 kB | ✓ |
main-HASH.js gzip | 4.87 kB | 4.87 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
commons.HASH.js | 194 kB | 194 kB | ✓ |
commons.HASH.js gzip | 63.1 kB | 63.1 kB | ✓ |
Overall change | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.module.js | 11.4 kB | 11.4 kB | ✓ |
main-HASH.module.js gzip | 4.31 kB | 4.31 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
commons.HASH.module.js | 175 kB | 175 kB | ✓ |
commons.HASH.module.js gzip | 57.1 kB | 57.1 kB | ✓ |
Overall change | ✓ |
Client Pages
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.js | 1.9 kB | 1.9 kB | ✓ |
_app.js gzip | 905 B | 905 B | ✓ |
_error.js | 8.02 kB | 8.02 kB | ✓ |
_error.js gzip | 3.12 kB | 3.12 kB | ✓ |
index.js | 343 B | 343 B | ✓ |
index.js gzip | 237 B | 237 B | ✓ |
link.js | 4.07 kB | 4.07 kB | ✓ |
link.js gzip | 1.79 kB | 1.79 kB | ✓ |
routerDirect.js | 423 B | 423 B | ✓ |
routerDirect.js gzip | 290 B | 290 B | ✓ |
withRouter.js | 435 B | 435 B | ✓ |
withRouter.js gzip | 287 B | 286 B | -1 B |
Overall change | ✓ |
Client Pages Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.module.js | 1.79 kB | 1.79 kB | ✓ |
_app.module.js gzip | 865 B | 865 B | ✓ |
_error.module.js | 5.82 kB | 5.82 kB | ✓ |
_error.module.js gzip | 2.33 kB | 2.33 kB | ✓ |
index.module.js | 319 B | 319 B | ✓ |
index.module.js gzip | 238 B | 238 B | ✓ |
link.module.js | 3.78 kB | 3.78 kB | ✓ |
link.module.js gzip | 1.7 kB | 1.7 kB | -1 B |
routerDirect.module.js | 411 B | 411 B | ✓ |
routerDirect.module.js gzip | 291 B | 291 B | ✓ |
withRouter.module.js | 423 B | 423 B | ✓ |
withRouter.module.js gzip | 288 B | 288 B | ✓ |
Overall change | ✓ |
Serverless bundles
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | ✓ |
_error.js gzip | 66.2 kB | 66.2 kB | |
index.js | 247 kB | 247 kB | ✓ |
index.js gzip | 66.5 kB | 66.5 kB | |
link.js | 255 kB | 255 kB | ✓ |
link.js gzip | 68.7 kB | 68.7 kB | |
routerDirect.js | 248 kB | 248 kB | ✓ |
routerDirect.js gzip | 66.4 kB | 66.4 kB | |
withRouter.js | 248 kB | 248 kB | ✓ |
withRouter.js gzip | 66.5 kB | 66.5 kB | |
Overall change | ✓ |
Stats from current PRDefault Server Mode (
|
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
buildDuration | 22s | 22.1s | |
nodeModulesSize | 41.2 MB | 41.2 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.js | 13.8 kB | 13.8 kB | ✓ |
main-HASH.js gzip | 4.87 kB | 4.87 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
commons.HASH.js | 194 kB | 194 kB | ✓ |
commons.HASH.js gzip | 63.1 kB | 63.1 kB | ✓ |
Overall change | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.module.js | 11.4 kB | 11.4 kB | ✓ |
main-HASH.module.js gzip | 4.31 kB | 4.31 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
commons.HASH.module.js | 175 kB | 175 kB | ✓ |
commons.HASH.module.js gzip | 57.1 kB | 57.1 kB | ✓ |
Overall change | ✓ |
Client Pages
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.js | 1.9 kB | 1.9 kB | ✓ |
_app.js gzip | 905 B | 905 B | ✓ |
_error.js | 8.02 kB | 8.02 kB | ✓ |
_error.js gzip | 3.12 kB | 3.12 kB | ✓ |
index.js | 343 B | 343 B | ✓ |
index.js gzip | 237 B | 237 B | ✓ |
link.js | 4.07 kB | 4.07 kB | ✓ |
link.js gzip | 1.79 kB | 1.79 kB | ✓ |
routerDirect.js | 423 B | 423 B | ✓ |
routerDirect.js gzip | 290 B | 290 B | ✓ |
withRouter.js | 435 B | 435 B | ✓ |
withRouter.js gzip | 287 B | 287 B | ✓ |
Overall change | ✓ |
Client Pages Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.module.js | 1.79 kB | 1.79 kB | ✓ |
_app.module.js gzip | 865 B | 865 B | ✓ |
_error.module.js | 5.82 kB | 5.82 kB | ✓ |
_error.module.js gzip | 2.33 kB | 2.33 kB | ✓ |
index.module.js | 319 B | 319 B | ✓ |
index.module.js gzip | 238 B | 238 B | ✓ |
link.module.js | 3.78 kB | 3.78 kB | ✓ |
link.module.js gzip | 1.7 kB | 1.7 kB | ✓ |
routerDirect.module.js | 411 B | 411 B | ✓ |
routerDirect.module.js gzip | 291 B | 291 B | ✓ |
withRouter.module.js | 423 B | 423 B | ✓ |
withRouter.module.js gzip | 288 B | 288 B | ✓ |
Overall change | ✓ |
Fetched pages
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
link | 2.81 kB | 2.81 kB | ✓ |
link gzip | 846 B | 847 B | |
index | 2.76 kB | 2.76 kB | ✓ |
index gzip | 840 B | 838 B | -2 B |
withRouter | 2.82 kB | 2.82 kB | ✓ |
withRouter gzip | 831 B | 833 B | |
Overall change | ✓ |
Serverless Mode (⚠️ Increase detected ⚠️ )
General ⚠️ Overall increase ⚠️
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
buildDuration | 24.5s | 23.5s | -968ms |
nodeModulesSize | 41.2 MB | 41.2 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.js | 13.8 kB | 13.8 kB | ✓ |
main-HASH.js gzip | 4.87 kB | 4.87 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
commons.HASH.js | 194 kB | 194 kB | ✓ |
commons.HASH.js gzip | 63.1 kB | 63.1 kB | ✓ |
Overall change | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.module.js | 11.4 kB | 11.4 kB | ✓ |
main-HASH.module.js gzip | 4.31 kB | 4.31 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
commons.HASH.module.js | 175 kB | 175 kB | ✓ |
commons.HASH.module.js gzip | 57.1 kB | 57.1 kB | ✓ |
Overall change | ✓ |
Client Pages
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.js | 1.9 kB | 1.9 kB | ✓ |
_app.js gzip | 905 B | 905 B | ✓ |
_error.js | 8.02 kB | 8.02 kB | ✓ |
_error.js gzip | 3.12 kB | 3.12 kB | ✓ |
index.js | 343 B | 343 B | ✓ |
index.js gzip | 237 B | 237 B | ✓ |
link.js | 4.07 kB | 4.07 kB | ✓ |
link.js gzip | 1.79 kB | 1.79 kB | ✓ |
routerDirect.js | 423 B | 423 B | ✓ |
routerDirect.js gzip | 290 B | 290 B | ✓ |
withRouter.js | 435 B | 435 B | ✓ |
withRouter.js gzip | 287 B | 287 B | ✓ |
Overall change | ✓ |
Client Pages Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.module.js | 1.79 kB | 1.79 kB | ✓ |
_app.module.js gzip | 865 B | 865 B | ✓ |
_error.module.js | 5.82 kB | 5.82 kB | ✓ |
_error.module.js gzip | 2.33 kB | 2.33 kB | ✓ |
index.module.js | 319 B | 319 B | ✓ |
index.module.js gzip | 238 B | 238 B | ✓ |
link.module.js | 3.78 kB | 3.78 kB | ✓ |
link.module.js gzip | 1.7 kB | 1.7 kB | ✓ |
routerDirect.module.js | 411 B | 411 B | ✓ |
routerDirect.module.js gzip | 291 B | 291 B | ✓ |
withRouter.module.js | 423 B | 423 B | ✓ |
withRouter.module.js gzip | 288 B | 288 B | ✓ |
Overall change | ✓ |
Serverless bundles
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | ✓ |
_error.js gzip | 66.2 kB | 66.2 kB | ✓ |
index.js | 247 kB | 247 kB | ✓ |
index.js gzip | 66.5 kB | 66.5 kB | ✓ |
link.js | 255 kB | 255 kB | ✓ |
link.js gzip | 68.7 kB | 68.7 kB | ✓ |
routerDirect.js | 248 kB | 248 kB | ✓ |
routerDirect.js gzip | 66.4 kB | 66.4 kB | ✓ |
withRouter.js | 248 kB | 248 kB | ✓ |
withRouter.js gzip | 66.5 kB | 66.5 kB | ✓ |
Overall change | ✓ |
Are we okay with the flag name? I figured there'd be more, but wasn't sure if it was worth special-casing it to "libraries". |
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
buildDuration | 22.4s | 22.8s | |
nodeModulesSize | 41.2 MB | 41.2 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.js | 13.8 kB | 13.8 kB | ✓ |
main-HASH.js gzip | 4.87 kB | 4.87 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
commons.HASH.js | 194 kB | 194 kB | ✓ |
commons.HASH.js gzip | 63.1 kB | 63.1 kB | ✓ |
Overall change | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.module.js | 11.4 kB | 11.4 kB | ✓ |
main-HASH.module.js gzip | 4.31 kB | 4.31 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
commons.HASH.module.js | 175 kB | 175 kB | ✓ |
commons.HASH.module.js gzip | 57.1 kB | 57.1 kB | ✓ |
Overall change | ✓ |
Client Pages
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.js | 1.9 kB | 1.9 kB | ✓ |
_app.js gzip | 905 B | 905 B | ✓ |
_error.js | 8.02 kB | 8.02 kB | ✓ |
_error.js gzip | 3.12 kB | 3.12 kB | ✓ |
index.js | 343 B | 343 B | ✓ |
index.js gzip | 237 B | 237 B | ✓ |
link.js | 4.07 kB | 4.07 kB | ✓ |
link.js gzip | 1.79 kB | 1.79 kB | ✓ |
routerDirect.js | 423 B | 423 B | ✓ |
routerDirect.js gzip | 290 B | 290 B | ✓ |
withRouter.js | 435 B | 435 B | ✓ |
withRouter.js gzip | 286 B | 287 B | |
Overall change | ✓ |
Client Pages Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.module.js | 1.79 kB | 1.79 kB | ✓ |
_app.module.js gzip | 865 B | 865 B | ✓ |
_error.module.js | 5.82 kB | 5.82 kB | ✓ |
_error.module.js gzip | 2.33 kB | 2.33 kB | ✓ |
index.module.js | 319 B | 319 B | ✓ |
index.module.js gzip | 238 B | 238 B | ✓ |
link.module.js | 3.78 kB | 3.78 kB | ✓ |
link.module.js gzip | 1.7 kB | 1.7 kB | |
routerDirect.module.js | 411 B | 411 B | ✓ |
routerDirect.module.js gzip | 291 B | 291 B | ✓ |
withRouter.module.js | 423 B | 423 B | ✓ |
withRouter.module.js gzip | 288 B | 288 B | ✓ |
Overall change | ✓ |
Fetched pages
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
link | 2.81 kB | 2.81 kB | ✓ |
link gzip | 846 B | 846 B | ✓ |
index | 2.76 kB | 2.76 kB | ✓ |
index gzip | 836 B | 836 B | ✓ |
withRouter | 2.82 kB | 2.82 kB | ✓ |
withRouter gzip | 835 B | 834 B | -1 B |
Overall change | ✓ |
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
buildDuration | 25.1s | 24.4s | -718ms |
nodeModulesSize | 41.2 MB | 41.2 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.js | 13.8 kB | 13.8 kB | ✓ |
main-HASH.js gzip | 4.87 kB | 4.87 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
commons.HASH.js | 194 kB | 194 kB | ✓ |
commons.HASH.js gzip | 63.1 kB | 63.1 kB | ✓ |
Overall change | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.module.js | 11.4 kB | 11.4 kB | ✓ |
main-HASH.module.js gzip | 4.31 kB | 4.31 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
commons.HASH.module.js | 175 kB | 175 kB | ✓ |
commons.HASH.module.js gzip | 57.1 kB | 57.1 kB | ✓ |
Overall change | ✓ |
Client Pages
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.js | 1.9 kB | 1.9 kB | ✓ |
_app.js gzip | 905 B | 905 B | ✓ |
_error.js | 8.02 kB | 8.02 kB | ✓ |
_error.js gzip | 3.12 kB | 3.12 kB | ✓ |
index.js | 343 B | 343 B | ✓ |
index.js gzip | 237 B | 237 B | ✓ |
link.js | 4.07 kB | 4.07 kB | ✓ |
link.js gzip | 1.79 kB | 1.79 kB | ✓ |
routerDirect.js | 423 B | 423 B | ✓ |
routerDirect.js gzip | 290 B | 290 B | ✓ |
withRouter.js | 435 B | 435 B | ✓ |
withRouter.js gzip | 287 B | 287 B | ✓ |
Overall change | ✓ |
Client Pages Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.module.js | 1.79 kB | 1.79 kB | ✓ |
_app.module.js gzip | 865 B | 865 B | ✓ |
_error.module.js | 5.82 kB | 5.82 kB | ✓ |
_error.module.js gzip | 2.33 kB | 2.33 kB | ✓ |
index.module.js | 319 B | 319 B | ✓ |
index.module.js gzip | 238 B | 238 B | ✓ |
link.module.js | 3.78 kB | 3.78 kB | ✓ |
link.module.js gzip | 1.7 kB | 1.7 kB | ✓ |
routerDirect.module.js | 411 B | 411 B | ✓ |
routerDirect.module.js gzip | 291 B | 291 B | ✓ |
withRouter.module.js | 423 B | 423 B | ✓ |
withRouter.module.js gzip | 288 B | 288 B | ✓ |
Overall change | ✓ |
Serverless bundles
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | ✓ |
_error.js gzip | 66.2 kB | 66.2 kB | ✓ |
index.js | 247 kB | 247 kB | ✓ |
index.js gzip | 66.5 kB | 66.5 kB | ✓ |
link.js | 255 kB | 255 kB | ✓ |
link.js gzip | 68.7 kB | 68.7 kB | ✓ |
routerDirect.js | 248 kB | 248 kB | ✓ |
routerDirect.js gzip | 66.4 kB | 66.4 kB | ✓ |
withRouter.js | 248 kB | 248 kB | ✓ |
withRouter.js gzip | 66.5 kB | 66.5 kB | -1 B |
Overall change | ✓ |
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.
Discussed on Slack
@Timer flag is now |
Stats from current PRDefault Server Mode (Decrease detected ✓)General Overall decrease ✓
Client Bundles (main, webpack, commons) Overall decrease ✓
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
Client Pages
Client Pages Modern
Fetched pages
DiffsDiff for commons.HASH.js@@ -80,7 +80,7 @@ module.exports = __webpack_require__("WEpk").Object.getPrototypeOf;
*/
Object.defineProperty(exports,"__esModule",{value:!0});var d=void 0,e=void 0,g=void 0,m=void 0,n=void 0;exports.unstable_now=void 0;exports.unstable_forceFrameRate=void 0;
-if("undefined"===typeof window||"function"!==typeof MessageChannel){var p=null,q=null,r=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(r,0),b;}};exports.unstable_now=function(){return Date.now()};d=function(a){null!==p?setTimeout(d,0,a):(p=a,setTimeout(r,0))};e=function(a,b){q=setTimeout(a,b)};g=function(){clearTimeout(q)};m=function(){return!1};n=exports.unstable_forceFrameRate=function(){}}else{var t=window.performance,u=window.Date,v=window.setTimeout,
+if( false||"function"!==typeof MessageChannel){var p=null,q=null,r=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(r,0),b;}};exports.unstable_now=function(){return Date.now()};d=function(a){null!==p?setTimeout(d,0,a):(p=a,setTimeout(r,0))};e=function(a,b){q=setTimeout(a,b)};g=function(){clearTimeout(q)};m=function(){return!1};n=exports.unstable_forceFrameRate=function(){}}else{var t=window.performance,u=window.Date,v=window.setTimeout,
w=window.clearTimeout,x=window.requestAnimationFrame,y=window.cancelAnimationFrame;"undefined"!==typeof console&&("function"!==typeof x&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!==typeof y&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));exports.unstable_now="object"===typeof t&&
"function"===typeof t.now?function(){return t.now()}:function(){return u.now()};var z=!1,A=null,B=-1,C=-1,D=33.33,E=-1,F=-1,G=0,H=!1;m=function(){return exports.unstable_now()>=G};n=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):0<a?(D=Math.floor(1E3/a),H=!0):(D=33.33,H=!1)};var J=function(){if(null!==A){var a=exports.unstable_now(),b=0<G-a;try{A(b,
a)||(A=null)}catch(c){throw I.postMessage(null),c;}}},K=new MessageChannel,I=K.port2;K.port1.onmessage=J;var L=function(a){if(null===A)F=E=-1,z=!1;else{z=!0;x(function(a){w(B);L(a)});var b=function(){G=exports.unstable_now()+D/2;J();B=v(b,3*D)};B=v(b,3*D);if(-1!==E&&.1<a-E){var c=a-E;!H&&-1!==F&&c<D&&F<D&&(D=c<F?F:c,8.33>D&&(D=8.33));F=c}E=a;G=a+D;I.postMessage(null)}};d=function(a){A=a;z||(z=!0,x(function(a){L(a)}))};e=function(a,b){C=v(function(){a(exports.unstable_now())},b)};g=function(){w(C);
@@ -539,10 +539,10 @@ module.exports = function (it) {
/***/ }),
/***/ "5T2Y":
-/***/ (function(module, exports) {
+/***/ (function(module, exports, __webpack_require__) {
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
+var global = module.exports = true && window.Math == Math
? window : typeof self != 'undefined' && self.Math == Math ? self
// eslint-disable-next-line no-new-func
: Function('return this')();
@@ -851,7 +851,7 @@ var toIObject = __webpack_require__("NsO/");
var gOPN = __webpack_require__("ar/p").f;
var toString = {}.toString;
-var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
+var windowNames = true && window && Object.getOwnPropertyNames
? Object.getOwnPropertyNames(window) : [];
var getWindowNames = function (it) {
@@ -7415,7 +7415,7 @@ module.exports = Function.bind || function bind(that /* , ...args */) {
/***/ }),
/***/ "yLpj":
-/***/ (function(module, exports) {
+/***/ (function(module, exports, __webpack_require__) {
var g;
@@ -7429,7 +7429,7 @@ try {
g = g || new Function("return this")();
} catch (e) {
// This works if the window reference is available
- if (typeof window === "object") g = window;
+ if (true) g = window;
}
// g can still be undefined, but nothing to do about it...
@@ -7466,7 +7466,7 @@ var Ca={injectEventPluginOrder:function(a){if(ba)throw t(Error(101));ba=Array.pr
function Da(a,b){var c=a.stateNode;if(!c)return null;var d=sa(c);if(!d)return null;c=d[b];a:switch(b){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":(d=!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&"function"!==typeof c)throw t(Error(231),b,typeof c);
return c}var Ea=Math.random().toString(36).slice(2),Fa="__reactInternalInstance$"+Ea,Ga="__reactEventHandlers$"+Ea;function Ha(a){if(a[Fa])return a[Fa];for(;!a[Fa];)if(a.parentNode)a=a.parentNode;else return null;a=a[Fa];return 5===a.tag||6===a.tag?a:null}function Ia(a){a=a[Fa];return!a||5!==a.tag&&6!==a.tag?null:a}function Ja(a){if(5===a.tag||6===a.tag)return a.stateNode;throw t(Error(33));}function Ka(a){return a[Ga]||null}function La(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}
function Ma(a,b,c){if(b=Da(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a)}function Na(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=La(b);for(b=c.length;0<b--;)Ma(c[b],"captured",a);for(b=0;b<c.length;b++)Ma(c[b],"bubbled",a)}}
-function Oa(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Da(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a))}function Pa(a){a&&a.dispatchConfig.registrationName&&Oa(a._targetInst,null,a)}function Qa(a){ya(a,Na)}var Ra=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement);
+function Oa(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Da(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a))}function Pa(a){a&&a.dispatchConfig.registrationName&&Oa(a._targetInst,null,a)}function Qa(a){ya(a,Na)}var Ra=!( false||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement);
function Sa(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;return c}var Ta={animationend:Sa("Animation","AnimationEnd"),animationiteration:Sa("Animation","AnimationIteration"),animationstart:Sa("Animation","AnimationStart"),transitionend:Sa("Transition","TransitionEnd")},Ua={},Va={};
Ra&&(Va=document.createElement("div").style,"AnimationEvent"in window||(delete Ta.animationend.animation,delete Ta.animationiteration.animation,delete Ta.animationstart.animation),"TransitionEvent"in window||delete Ta.transitionend.transition);function Wa(a){if(Ua[a])return Ua[a];if(!Ta[a])return a;var b=Ta[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Va)return Ua[a]=b[c];return a}
var Xa=Wa("animationend"),Ya=Wa("animationiteration"),Za=Wa("animationstart"),ab=Wa("transitionend"),bb="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),cb=null,db=null,eb=null; Diff for commons.HASH.module.js@@ -14,7 +14,7 @@
*/
Object.defineProperty(exports,"__esModule",{value:!0});var d=void 0,e=void 0,g=void 0,m=void 0,n=void 0;exports.unstable_now=void 0;exports.unstable_forceFrameRate=void 0;
-if("undefined"===typeof window||"function"!==typeof MessageChannel){var p=null,q=null,r=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(r,0),b;}};exports.unstable_now=function(){return Date.now()};d=function(a){null!==p?setTimeout(d,0,a):(p=a,setTimeout(r,0))};e=function(a,b){q=setTimeout(a,b)};g=function(){clearTimeout(q)};m=function(){return!1};n=exports.unstable_forceFrameRate=function(){}}else{var t=window.performance,u=window.Date,v=window.setTimeout,
+if( false||"function"!==typeof MessageChannel){var p=null,q=null,r=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(r,0),b;}};exports.unstable_now=function(){return Date.now()};d=function(a){null!==p?setTimeout(d,0,a):(p=a,setTimeout(r,0))};e=function(a,b){q=setTimeout(a,b)};g=function(){clearTimeout(q)};m=function(){return!1};n=exports.unstable_forceFrameRate=function(){}}else{var t=window.performance,u=window.Date,v=window.setTimeout,
w=window.clearTimeout,x=window.requestAnimationFrame,y=window.cancelAnimationFrame;"undefined"!==typeof console&&("function"!==typeof x&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!==typeof y&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));exports.unstable_now="object"===typeof t&&
"function"===typeof t.now?function(){return t.now()}:function(){return u.now()};var z=!1,A=null,B=-1,C=-1,D=33.33,E=-1,F=-1,G=0,H=!1;m=function(){return exports.unstable_now()>=G};n=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):0<a?(D=Math.floor(1E3/a),H=!0):(D=33.33,H=!1)};var J=function(){if(null!==A){var a=exports.unstable_now(),b=0<G-a;try{A(b,
a)||(A=null)}catch(c){throw I.postMessage(null),c;}}},K=new MessageChannel,I=K.port2;K.port1.onmessage=J;var L=function(a){if(null===A)F=E=-1,z=!1;else{z=!0;x(function(a){w(B);L(a)});var b=function(){G=exports.unstable_now()+D/2;J();B=v(b,3*D)};B=v(b,3*D);if(-1!==E&&.1<a-E){var c=a-E;!H&&-1!==F&&c<D&&F<D&&(D=c<F?F:c,8.33>D&&(D=8.33));F=c}E=a;G=a+D;I.postMessage(null)}};d=function(a){A=a;z||(z=!0,x(function(a){L(a)}))};e=function(a,b){C=v(function(){a(exports.unstable_now())},b)};g=function(){w(C);
@@ -411,10 +411,10 @@ module.exports = function (it) {
/***/ }),
/***/ "5T2Y":
-/***/ (function(module, exports) {
+/***/ (function(module, exports, __webpack_require__) {
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
+var global = module.exports = true && window.Math == Math
? window : typeof self != 'undefined' && self.Math == Math ? self
// eslint-disable-next-line no-new-func
: Function('return this')();
@@ -5509,7 +5509,7 @@ module.exports = Object.keys || function keys(O) {
/***/ }),
/***/ "yLpj":
-/***/ (function(module, exports) {
+/***/ (function(module, exports, __webpack_require__) {
var g;
@@ -5523,7 +5523,7 @@ try {
g = g || new Function("return this")();
} catch (e) {
// This works if the window reference is available
- if (typeof window === "object") g = window;
+ if (true) g = window;
}
// g can still be undefined, but nothing to do about it...
@@ -5560,7 +5560,7 @@ var Ca={injectEventPluginOrder:function(a){if(ba)throw t(Error(101));ba=Array.pr
function Da(a,b){var c=a.stateNode;if(!c)return null;var d=sa(c);if(!d)return null;c=d[b];a:switch(b){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":(d=!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&"function"!==typeof c)throw t(Error(231),b,typeof c);
return c}var Ea=Math.random().toString(36).slice(2),Fa="__reactInternalInstance$"+Ea,Ga="__reactEventHandlers$"+Ea;function Ha(a){if(a[Fa])return a[Fa];for(;!a[Fa];)if(a.parentNode)a=a.parentNode;else return null;a=a[Fa];return 5===a.tag||6===a.tag?a:null}function Ia(a){a=a[Fa];return!a||5!==a.tag&&6!==a.tag?null:a}function Ja(a){if(5===a.tag||6===a.tag)return a.stateNode;throw t(Error(33));}function Ka(a){return a[Ga]||null}function La(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}
function Ma(a,b,c){if(b=Da(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a)}function Na(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=La(b);for(b=c.length;0<b--;)Ma(c[b],"captured",a);for(b=0;b<c.length;b++)Ma(c[b],"bubbled",a)}}
-function Oa(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Da(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a))}function Pa(a){a&&a.dispatchConfig.registrationName&&Oa(a._targetInst,null,a)}function Qa(a){ya(a,Na)}var Ra=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement);
+function Oa(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Da(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a))}function Pa(a){a&&a.dispatchConfig.registrationName&&Oa(a._targetInst,null,a)}function Qa(a){ya(a,Na)}var Ra=!( false||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement);
function Sa(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;return c}var Ta={animationend:Sa("Animation","AnimationEnd"),animationiteration:Sa("Animation","AnimationIteration"),animationstart:Sa("Animation","AnimationStart"),transitionend:Sa("Transition","TransitionEnd")},Ua={},Va={};
Ra&&(Va=document.createElement("div").style,"AnimationEvent"in window||(delete Ta.animationend.animation,delete Ta.animationiteration.animation,delete Ta.animationstart.animation),"TransitionEvent"in window||delete Ta.transitionend.transition);function Wa(a){if(Ua[a])return Ua[a];if(!Ta[a])return a;var b=Ta[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Va)return Ua[a]=b[c];return a}
var Xa=Wa("animationend"),Ya=Wa("animationiteration"),Za=Wa("animationstart"),ab=Wa("transitionend"),bb="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),cb=null,db=null,eb=null; Diff for _error.js@@ -229,7 +229,7 @@ _Object$defineProperty(exports, "__esModule", {
var react_1 = __webpack_require__("q1tI");
-var isServer = false;
+var isServer = "object" === 'undefined';
exports["default"] = function () {
var mountedInstances = new _Set(); Diff for link.js@@ -157,7 +157,7 @@ function formatUrl(url) {
var observer;
var listeners = new _map["default"]();
-var IntersectionObserver = true ? window.IntersectionObserver : undefined;
+var IntersectionObserver = true ? window.IntersectionObserver : undefined;
function getObserver() {
// Return shared instance of IntersectionObserver if already created
@@ -298,7 +298,7 @@ function (_react$Component) {
}, {
key: "prefetch",
value: function prefetch() {
- if (!this.p || false) return; // Prefetch the JSON page if asked (only in the client)
+ if (!this.p || "object" === 'undefined') return; // Prefetch the JSON page if asked (only in the client)
var pathname = window.location.pathname; Diff for _error.module.js@@ -171,7 +171,7 @@ _Object$defineProperty(exports, "__esModule", {
const react_1 = __webpack_require__("q1tI");
-const isServer = false;
+const isServer = "object" === 'undefined';
exports.default = () => {
const mountedInstances = new _Set(); Diff for link.module.js@@ -145,7 +145,7 @@ function formatUrl(url) {
let observer;
const listeners = new _map.default();
-const IntersectionObserver = true ? window.IntersectionObserver : undefined;
+const IntersectionObserver = true ? window.IntersectionObserver : undefined;
function getObserver() {
// Return shared instance of IntersectionObserver if already created
@@ -277,7 +277,7 @@ class Link extends _react.Component {
prefetch() {
- if (!this.p || false) return; // Prefetch the JSON page if asked (only in the client)
+ if (!this.p || "object" === 'undefined') return; // Prefetch the JSON page if asked (only in the client)
const {
pathname Serverless Mode (Increase detected
|
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
buildDuration | 24.6s | 24.8s | |
nodeModulesSize | 41.3 MB | 41.2 MB | -73 kB |
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.js | 13.8 kB | 13.8 kB | ✓ |
main-HASH.js gzip | 4.87 kB | 4.87 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
commons.HASH.js | 194 kB | 194 kB | -135 B |
commons.HASH.js gzip | 63.1 kB | 63.1 kB | -26 B |
Overall change | -135 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.module.js | 11.4 kB | 11.4 kB | ✓ |
main-HASH.module.js gzip | 4.31 kB | 4.31 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
commons.HASH.module.js | 176 kB | 175 kB | -110 B |
commons.HASH.module.js gzip | 57.2 kB | 57.1 kB | -22 B |
Overall change | -110 B |
Client Pages
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.js | 1.9 kB | 1.9 kB | ✓ |
_app.js gzip | 905 B | 905 B | ✓ |
_error.js | 8.02 kB | 8.02 kB | ✓ |
_error.js gzip | 3.12 kB | 3.12 kB | ✓ |
index.js | 343 B | 343 B | ✓ |
index.js gzip | 237 B | 237 B | ✓ |
link.js | 4.07 kB | 4.07 kB | ✓ |
link.js gzip | 1.79 kB | 1.79 kB | ✓ |
routerDirect.js | 423 B | 423 B | ✓ |
routerDirect.js gzip | 290 B | 290 B | ✓ |
withRouter.js | 435 B | 435 B | ✓ |
withRouter.js gzip | 287 B | 287 B | ✓ |
Overall change | ✓ |
Client Pages Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.module.js | 1.79 kB | 1.79 kB | ✓ |
_app.module.js gzip | 865 B | 865 B | ✓ |
_error.module.js | 5.82 kB | 5.82 kB | ✓ |
_error.module.js gzip | 2.33 kB | 2.33 kB | ✓ |
index.module.js | 319 B | 319 B | ✓ |
index.module.js gzip | 238 B | 238 B | ✓ |
link.module.js | 3.78 kB | 3.78 kB | ✓ |
link.module.js gzip | 1.7 kB | 1.7 kB | ✓ |
routerDirect.module.js | 411 B | 411 B | ✓ |
routerDirect.module.js gzip | 291 B | 291 B | ✓ |
withRouter.module.js | 423 B | 423 B | ✓ |
withRouter.module.js gzip | 288 B | 288 B | ✓ |
Overall change | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | |
_error.js gzip | 66.2 kB | 66.2 kB | -8 B |
index.js | 247 kB | 247 kB | |
index.js gzip | 66.5 kB | 66.5 kB | -7 B |
link.js | 255 kB | 255 kB | |
link.js gzip | 68.7 kB | 68.7 kB | |
routerDirect.js | 248 kB | 248 kB | |
routerDirect.js gzip | 66.4 kB | 66.4 kB | -9 B |
withRouter.js | 248 kB | 248 kB | |
withRouter.js gzip | 66.5 kB | 66.5 kB | -6 B |
Overall change |
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
buildDuration | 23.4s | 22.3s | -1s |
nodeModulesSize | 41.2 MB | 41.2 MB | -36.5 kB |
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.js | 13.7 kB | 13.8 kB | |
main-HASH.js gzip | 4.84 kB | 4.87 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
commons.HASH.js | 194 kB | 194 kB | -135 B |
commons.HASH.js gzip | 63.1 kB | 63.1 kB | -26 B |
Overall change | -1 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.module.js | 11.3 kB | 11.4 kB | |
main-HASH.module.js gzip | 4.3 kB | 4.31 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
commons.HASH.module.js | 176 kB | 175 kB | -110 B |
commons.HASH.module.js gzip | 57.2 kB | 57.1 kB | -22 B |
Overall change | -23 B |
Client Pages Overall increase ⚠️
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.js | 1.9 kB | 1.9 kB | ✓ |
_app.js gzip | 905 B | 905 B | ✓ |
_error.js | 8.02 kB | 8.02 kB | ✓ |
_error.js gzip | 3.12 kB | 3.12 kB | ✓ |
index.js | 343 B | 343 B | ✓ |
index.js gzip | 237 B | 237 B | ✓ |
link.js | 4.04 kB | 4.07 kB | |
link.js gzip | 1.79 kB | 1.79 kB | |
routerDirect.js | 429 B | 423 B | -6 B |
routerDirect.js gzip | 293 B | 290 B | -3 B |
withRouter.js | 439 B | 435 B | -4 B |
withRouter.js gzip | 290 B | 287 B | -3 B |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.module.js | 1.79 kB | 1.79 kB | ✓ |
_app.module.js gzip | 865 B | 865 B | ✓ |
_error.module.js | 5.82 kB | 5.82 kB | ✓ |
_error.module.js gzip | 2.33 kB | 2.33 kB | ✓ |
index.module.js | 319 B | 319 B | ✓ |
index.module.js gzip | 238 B | 238 B | ✓ |
link.module.js | 3.75 kB | 3.78 kB | |
link.module.js gzip | 1.7 kB | 1.7 kB | |
routerDirect.module.js | 417 B | 411 B | -6 B |
routerDirect.module.js gzip | 293 B | 291 B | -2 B |
withRouter.module.js | 427 B | 423 B | -4 B |
withRouter.module.js gzip | 292 B | 288 B | -4 B |
Overall change |
Fetched pages Overall increase ⚠️
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
link | 2.78 kB | 2.81 kB | |
link gzip | 836 B | 845 B | |
index | 2.73 kB | 2.76 kB | |
index gzip | 829 B | 836 B | |
withRouter | 2.79 kB | 2.82 kB | |
withRouter gzip | 825 B | 831 B | |
Overall change |
Diffs
Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[2],{
/***/ "/h46":
/***/ (function(module, exports, __webpack_require__) {
@@ -304,6 +304,7 @@ var props = data.props,
page = data.page,
query = data.query,
buildId = data.buildId,
+ dynamicBuildId = data.dynamicBuildId,
assetPrefix = data.assetPrefix,
runtimeConfig = data.runtimeConfig,
dynamicIds = data.dynamicIds;
@@ -476,6 +477,8 @@ function () {
return window.__NEXT_PRELOADREADY(dynamicIds);
case 22:
+ if (false) {}
+
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -506,7 +509,7 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 27:
case "end":
return _context.stop();
}
@@ -702,11 +705,7 @@ function markRenderComplete() {
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1028,6 +1027,8 @@ var PageLoader =
/*#__PURE__*/
function () {
function PageLoader(buildId, assetPrefix) {
+ var _this3 = this;
+
_classCallCheck(this, PageLoader);
this.buildId = buildId;
@@ -1035,6 +1036,9 @@ function () {
this.pageCache = {};
this.pageRegisterEvents = (0, _mitt["default"])();
this.loadingRoutes = {};
+ this.promisedBuildId = _promise["default"].resolve();
+
+ if (false) {}
if (false) {}
} // Returns a promise for the dependencies for a particular route
@@ -1063,7 +1067,7 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
- var _this3 = this;
+ var _this4 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
@@ -1071,9 +1075,9 @@ function () {
var error = _ref.error,
page = _ref.page;
- _this3.pageRegisterEvents.off(route, fire);
+ _this4.pageRegisterEvents.off(route, fire);
- delete _this3.loadingRoutes[route];
+ delete _this4.loadingRoutes[route];
if (error) {
reject(error);
@@ -1083,7 +1087,7 @@ function () {
}; // If there's a cached version of the page, let's use it.
- var cachedPage = _this3.pageCache[route];
+ var cachedPage = _this4.pageCache[route];
if (cachedPage) {
var error = cachedPage.error,
@@ -1093,19 +1097,19 @@ function () {
} // Register a listener to get the page
- _this3.pageRegisterEvents.on(route, fire); // If the page is loading via SSR, we need to wait for it
+ _this4.pageRegisterEvents.on(route, fire); // If the page is loading via SSR, we need to wait for it
// rather downloading it again.
- if (document.querySelector("script[data-next-page=\"" + route + "\"]")) {
+ if (document.getElementById("__NEXT_PAGE__" + route)) {
return;
}
- if (!_this3.loadingRoutes[route]) {
+ if (!_this4.loadingRoutes[route]) {
if (false) {} else {
- _this3.loadRoute(route);
+ _this4.loadRoute(route);
- _this3.loadingRoutes[route] = true;
+ _this4.loadingRoutes[route] = true;
}
}
});
@@ -1123,13 +1127,22 @@ function () {
while (1) {
switch (_context.prev = _context.next) {
case 0:
+ if (true) {
+ _context.next = 3;
+ break;
+ }
+
+ _context.next = 3;
+ return _this.promisedBuildId;
+
+ case 3:
route = _this.normalizeRoute(route);
scriptRoute = route === '/' ? '/index.js' : route + ".js";
url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
_this.loadScript(url, route, true);
- case 4:
+ case 7:
case "end":
return _context.stop();
}
@@ -1140,7 +1153,7 @@ function () {
}, {
key: "loadScript",
value: function loadScript(url, route, isPage) {
- var _this4 = this;
+ var _this5 = this;
var script = document.createElement('script');
@@ -1158,7 +1171,7 @@ function () {
var error = new Error("Error loading script " + url);
error.code = 'PAGE_LOAD_ERROR';
- _this4.pageRegisterEvents.emit(route, {
+ _this5.pageRegisterEvents.emit(route, {
error: error
});
};
@@ -1169,7 +1182,7 @@ function () {
}, {
key: "registerPage",
value: function registerPage(route, regFn) {
- var _this5 = this;
+ var _this6 = this;
var register = function register() {
try {
@@ -1177,21 +1190,21 @@ function () {
error = _regFn.error,
page = _regFn.page;
- _this5.pageCache[route] = {
+ _this6.pageCache[route] = {
error: error,
page: page
};
- _this5.pageRegisterEvents.emit(route, {
+ _this6.pageRegisterEvents.emit(route, {
error: error,
page: page
});
} catch (error) {
- _this5.pageCache[route] = {
+ _this6.pageCache[route] = {
error: error
};
- _this5.pageRegisterEvents.emit(route, {
+ _this6.pageRegisterEvents.emit(route, {
error: error
});
}
@@ -1214,6 +1227,15 @@ function () {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
+ if (true) {
+ _context2.next = 3;
+ break;
+ }
+
+ _context2.next = 3;
+ return _this2.promisedBuildId;
+
+ case 3:
route = _this2.normalizeRoute(route);
scriptRoute = (route === '/' ? '/index' : route) + ".js";
@@ -1224,69 +1246,69 @@ function () {
url = isDependency ? route : _this2.assetPrefix + "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute; // n.b. If preload is not supported, we fall back to `loadPage` which has
// its own deduping mechanism.
- if (!document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
- _context2.next = 6;
+ if (!(document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"]") || document.getElementById("__NEXT_PAGE__" + route))) {
+ _context2.next = 9;
break;
}
return _context2.abrupt("return");
- case 6:
+ case 9:
if (!(cn = navigator.connection)) {
- _context2.next = 9;
+ _context2.next = 12;
break;
}
if (!((cn.effectiveType || '').indexOf('2g') !== -1 || cn.saveData)) {
- _context2.next = 9;
+ _context2.next = 12;
break;
}
return _context2.abrupt("return");
- case 9:
+ case 12:
if (true) {
- _context2.next = 15;
+ _context2.next = 18;
break;
}
;
- _context2.next = 13;
+ _context2.next = 16;
return _this2.getDependencies(route);
- case 13:
+ case 16:
_context2.t0 = function (url) {
_this2.prefetch(url, true);
};
_context2.sent.forEach(_context2.t0);
- case 15:
+ case 18:
if (!hasPreload) {
- _context2.next = 18;
+ _context2.next = 21;
break;
}
preloadScript(url);
return _context2.abrupt("return");
- case 18:
+ case 21:
if (!isDependency) {
- _context2.next = 20;
+ _context2.next = 23;
break;
}
return _context2.abrupt("return");
- case 20:
+ case 23:
if (!(document.readyState === 'complete')) {
- _context2.next = 24;
+ _context2.next = 27;
break;
}
return _context2.abrupt("return", _this2.loadPage(route)["catch"](function () {}));
- case 24:
+ case 27:
return _context2.abrupt("return", new _promise["default"](function (resolve) {
window.addEventListener('load', function () {
_this2.loadPage(route).then(function () {
@@ -1297,7 +1319,7 @@ function () {
});
}));
- case 25:
+ case 28:
case "end":
return _context2.stop();
}
Diff for commons.HASH.js
@@ -80,7 +80,7 @@ module.exports = __webpack_require__("WEpk").Object.getPrototypeOf;
*/
Object.defineProperty(exports,"__esModule",{value:!0});var d=void 0,e=void 0,g=void 0,m=void 0,n=void 0;exports.unstable_now=void 0;exports.unstable_forceFrameRate=void 0;
-if("undefined"===typeof window||"function"!==typeof MessageChannel){var p=null,q=null,r=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(r,0),b;}};exports.unstable_now=function(){return Date.now()};d=function(a){null!==p?setTimeout(d,0,a):(p=a,setTimeout(r,0))};e=function(a,b){q=setTimeout(a,b)};g=function(){clearTimeout(q)};m=function(){return!1};n=exports.unstable_forceFrameRate=function(){}}else{var t=window.performance,u=window.Date,v=window.setTimeout,
+if( false||"function"!==typeof MessageChannel){var p=null,q=null,r=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(r,0),b;}};exports.unstable_now=function(){return Date.now()};d=function(a){null!==p?setTimeout(d,0,a):(p=a,setTimeout(r,0))};e=function(a,b){q=setTimeout(a,b)};g=function(){clearTimeout(q)};m=function(){return!1};n=exports.unstable_forceFrameRate=function(){}}else{var t=window.performance,u=window.Date,v=window.setTimeout,
w=window.clearTimeout,x=window.requestAnimationFrame,y=window.cancelAnimationFrame;"undefined"!==typeof console&&("function"!==typeof x&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!==typeof y&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));exports.unstable_now="object"===typeof t&&
"function"===typeof t.now?function(){return t.now()}:function(){return u.now()};var z=!1,A=null,B=-1,C=-1,D=33.33,E=-1,F=-1,G=0,H=!1;m=function(){return exports.unstable_now()>=G};n=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):0<a?(D=Math.floor(1E3/a),H=!0):(D=33.33,H=!1)};var J=function(){if(null!==A){var a=exports.unstable_now(),b=0<G-a;try{A(b,
a)||(A=null)}catch(c){throw I.postMessage(null),c;}}},K=new MessageChannel,I=K.port2;K.port1.onmessage=J;var L=function(a){if(null===A)F=E=-1,z=!1;else{z=!0;x(function(a){w(B);L(a)});var b=function(){G=exports.unstable_now()+D/2;J();B=v(b,3*D)};B=v(b,3*D);if(-1!==E&&.1<a-E){var c=a-E;!H&&-1!==F&&c<D&&F<D&&(D=c<F?F:c,8.33>D&&(D=8.33));F=c}E=a;G=a+D;I.postMessage(null)}};d=function(a){A=a;z||(z=!0,x(function(a){L(a)}))};e=function(a,b){C=v(function(){a(exports.unstable_now())},b)};g=function(){w(C);
@@ -539,10 +539,10 @@ module.exports = function (it) {
/***/ }),
/***/ "5T2Y":
-/***/ (function(module, exports) {
+/***/ (function(module, exports, __webpack_require__) {
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
+var global = module.exports = true && window.Math == Math
? window : typeof self != 'undefined' && self.Math == Math ? self
// eslint-disable-next-line no-new-func
: Function('return this')();
@@ -851,7 +851,7 @@ var toIObject = __webpack_require__("NsO/");
var gOPN = __webpack_require__("ar/p").f;
var toString = {}.toString;
-var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
+var windowNames = true && window && Object.getOwnPropertyNames
? Object.getOwnPropertyNames(window) : [];
var getWindowNames = function (it) {
@@ -7415,7 +7415,7 @@ module.exports = Function.bind || function bind(that /* , ...args */) {
/***/ }),
/***/ "yLpj":
-/***/ (function(module, exports) {
+/***/ (function(module, exports, __webpack_require__) {
var g;
@@ -7429,7 +7429,7 @@ try {
g = g || new Function("return this")();
} catch (e) {
// This works if the window reference is available
- if (typeof window === "object") g = window;
+ if (true) g = window;
}
// g can still be undefined, but nothing to do about it...
@@ -7466,7 +7466,7 @@ var Ca={injectEventPluginOrder:function(a){if(ba)throw t(Error(101));ba=Array.pr
function Da(a,b){var c=a.stateNode;if(!c)return null;var d=sa(c);if(!d)return null;c=d[b];a:switch(b){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":(d=!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&"function"!==typeof c)throw t(Error(231),b,typeof c);
return c}var Ea=Math.random().toString(36).slice(2),Fa="__reactInternalInstance$"+Ea,Ga="__reactEventHandlers$"+Ea;function Ha(a){if(a[Fa])return a[Fa];for(;!a[Fa];)if(a.parentNode)a=a.parentNode;else return null;a=a[Fa];return 5===a.tag||6===a.tag?a:null}function Ia(a){a=a[Fa];return!a||5!==a.tag&&6!==a.tag?null:a}function Ja(a){if(5===a.tag||6===a.tag)return a.stateNode;throw t(Error(33));}function Ka(a){return a[Ga]||null}function La(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}
function Ma(a,b,c){if(b=Da(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a)}function Na(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=La(b);for(b=c.length;0<b--;)Ma(c[b],"captured",a);for(b=0;b<c.length;b++)Ma(c[b],"bubbled",a)}}
-function Oa(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Da(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a))}function Pa(a){a&&a.dispatchConfig.registrationName&&Oa(a._targetInst,null,a)}function Qa(a){ya(a,Na)}var Ra=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement);
+function Oa(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Da(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a))}function Pa(a){a&&a.dispatchConfig.registrationName&&Oa(a._targetInst,null,a)}function Qa(a){ya(a,Na)}var Ra=!( false||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement);
function Sa(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;return c}var Ta={animationend:Sa("Animation","AnimationEnd"),animationiteration:Sa("Animation","AnimationIteration"),animationstart:Sa("Animation","AnimationStart"),transitionend:Sa("Transition","TransitionEnd")},Ua={},Va={};
Ra&&(Va=document.createElement("div").style,"AnimationEvent"in window||(delete Ta.animationend.animation,delete Ta.animationiteration.animation,delete Ta.animationstart.animation),"TransitionEvent"in window||delete Ta.transitionend.transition);function Wa(a){if(Ua[a])return Ua[a];if(!Ta[a])return a;var b=Ta[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Va)return Ua[a]=b[c];return a}
var Xa=Wa("animationend"),Ya=Wa("animationiteration"),Za=Wa("animationstart"),ab=Wa("transitionend"),bb="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),cb=null,db=null,eb=null;
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[2],{
/***/ "+oT+":
/***/ (function(module, exports, __webpack_require__) {
@@ -317,6 +317,7 @@ const {
page,
query,
buildId,
+ dynamicBuildId,
assetPrefix,
runtimeConfig,
dynamicIds
@@ -431,6 +432,8 @@ function () {
yield window.__NEXT_PRELOADREADY(dynamicIds);
}
+ if (false) {}
+
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader,
@@ -584,11 +587,7 @@ function markRenderComplete() {
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -872,6 +871,9 @@ class PageLoader {
this.pageCache = {};
this.pageRegisterEvents = (0, _mitt.default)();
this.loadingRoutes = {};
+ this.promisedBuildId = _promise.default.resolve();
+
+ if (false) {}
if (false) {}
} // Returns a promise for the dependencies for a particular route
@@ -925,7 +927,7 @@ class PageLoader {
this.pageRegisterEvents.on(route, fire); // If the page is loading via SSR, we need to wait for it
// rather downloading it again.
- if (document.querySelector("script[data-next-page=\"" + route + "\"]")) {
+ if (document.getElementById("__NEXT_PAGE__" + route)) {
return;
}
@@ -942,6 +944,8 @@ class PageLoader {
var _this = this;
return (0, _asyncToGenerator2.default)(function* () {
+ if (false) {}
+
route = _this.normalizeRoute(route);
let scriptRoute = route === '/' ? '/index.js' : route + ".js";
const url = _this.assetPrefix + "/_next/static/" + encodeURIComponent(_this.buildId) + "/pages" + scriptRoute;
@@ -1009,6 +1013,8 @@ class PageLoader {
var _this2 = this;
return (0, _asyncToGenerator2.default)(function* () {
+ if (false) {}
+
route = _this2.normalizeRoute(route);
let scriptRoute = (route === '/' ? '/index' : route) + ".js";
@@ -1019,7 +1025,7 @@ class PageLoader {
const url = isDependency ? route : _this2.assetPrefix + "/_next/static/" + encodeURIComponent(_this2.buildId) + "/pages" + scriptRoute; // n.b. If preload is not supported, we fall back to `loadPage` which has
// its own deduping mechanism.
- if (document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"], script[data-next-page=\"" + route + "\"]")) {
+ if (document.querySelector("link[rel=\"preload\"][href^=\"" + url + "\"]") || document.getElementById("__NEXT_PAGE__" + route)) {
return;
} // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
Diff for commons.HASH.module.js
@@ -14,7 +14,7 @@
*/
Object.defineProperty(exports,"__esModule",{value:!0});var d=void 0,e=void 0,g=void 0,m=void 0,n=void 0;exports.unstable_now=void 0;exports.unstable_forceFrameRate=void 0;
-if("undefined"===typeof window||"function"!==typeof MessageChannel){var p=null,q=null,r=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(r,0),b;}};exports.unstable_now=function(){return Date.now()};d=function(a){null!==p?setTimeout(d,0,a):(p=a,setTimeout(r,0))};e=function(a,b){q=setTimeout(a,b)};g=function(){clearTimeout(q)};m=function(){return!1};n=exports.unstable_forceFrameRate=function(){}}else{var t=window.performance,u=window.Date,v=window.setTimeout,
+if( false||"function"!==typeof MessageChannel){var p=null,q=null,r=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(r,0),b;}};exports.unstable_now=function(){return Date.now()};d=function(a){null!==p?setTimeout(d,0,a):(p=a,setTimeout(r,0))};e=function(a,b){q=setTimeout(a,b)};g=function(){clearTimeout(q)};m=function(){return!1};n=exports.unstable_forceFrameRate=function(){}}else{var t=window.performance,u=window.Date,v=window.setTimeout,
w=window.clearTimeout,x=window.requestAnimationFrame,y=window.cancelAnimationFrame;"undefined"!==typeof console&&("function"!==typeof x&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!==typeof y&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));exports.unstable_now="object"===typeof t&&
"function"===typeof t.now?function(){return t.now()}:function(){return u.now()};var z=!1,A=null,B=-1,C=-1,D=33.33,E=-1,F=-1,G=0,H=!1;m=function(){return exports.unstable_now()>=G};n=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):0<a?(D=Math.floor(1E3/a),H=!0):(D=33.33,H=!1)};var J=function(){if(null!==A){var a=exports.unstable_now(),b=0<G-a;try{A(b,
a)||(A=null)}catch(c){throw I.postMessage(null),c;}}},K=new MessageChannel,I=K.port2;K.port1.onmessage=J;var L=function(a){if(null===A)F=E=-1,z=!1;else{z=!0;x(function(a){w(B);L(a)});var b=function(){G=exports.unstable_now()+D/2;J();B=v(b,3*D)};B=v(b,3*D);if(-1!==E&&.1<a-E){var c=a-E;!H&&-1!==F&&c<D&&F<D&&(D=c<F?F:c,8.33>D&&(D=8.33));F=c}E=a;G=a+D;I.postMessage(null)}};d=function(a){A=a;z||(z=!0,x(function(a){L(a)}))};e=function(a,b){C=v(function(){a(exports.unstable_now())},b)};g=function(){w(C);
@@ -411,10 +411,10 @@ module.exports = function (it) {
/***/ }),
/***/ "5T2Y":
-/***/ (function(module, exports) {
+/***/ (function(module, exports, __webpack_require__) {
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
+var global = module.exports = true && window.Math == Math
? window : typeof self != 'undefined' && self.Math == Math ? self
// eslint-disable-next-line no-new-func
: Function('return this')();
@@ -5509,7 +5509,7 @@ module.exports = Object.keys || function keys(O) {
/***/ }),
/***/ "yLpj":
-/***/ (function(module, exports) {
+/***/ (function(module, exports, __webpack_require__) {
var g;
@@ -5523,7 +5523,7 @@ try {
g = g || new Function("return this")();
} catch (e) {
// This works if the window reference is available
- if (typeof window === "object") g = window;
+ if (true) g = window;
}
// g can still be undefined, but nothing to do about it...
@@ -5560,7 +5560,7 @@ var Ca={injectEventPluginOrder:function(a){if(ba)throw t(Error(101));ba=Array.pr
function Da(a,b){var c=a.stateNode;if(!c)return null;var d=sa(c);if(!d)return null;c=d[b];a:switch(b){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":(d=!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&"function"!==typeof c)throw t(Error(231),b,typeof c);
return c}var Ea=Math.random().toString(36).slice(2),Fa="__reactInternalInstance$"+Ea,Ga="__reactEventHandlers$"+Ea;function Ha(a){if(a[Fa])return a[Fa];for(;!a[Fa];)if(a.parentNode)a=a.parentNode;else return null;a=a[Fa];return 5===a.tag||6===a.tag?a:null}function Ia(a){a=a[Fa];return!a||5!==a.tag&&6!==a.tag?null:a}function Ja(a){if(5===a.tag||6===a.tag)return a.stateNode;throw t(Error(33));}function Ka(a){return a[Ga]||null}function La(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}
function Ma(a,b,c){if(b=Da(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a)}function Na(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=La(b);for(b=c.length;0<b--;)Ma(c[b],"captured",a);for(b=0;b<c.length;b++)Ma(c[b],"bubbled",a)}}
-function Oa(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Da(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a))}function Pa(a){a&&a.dispatchConfig.registrationName&&Oa(a._targetInst,null,a)}function Qa(a){ya(a,Na)}var Ra=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement);
+function Oa(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Da(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=xa(c._dispatchListeners,b),c._dispatchInstances=xa(c._dispatchInstances,a))}function Pa(a){a&&a.dispatchConfig.registrationName&&Oa(a._targetInst,null,a)}function Qa(a){ya(a,Na)}var Ra=!( false||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement);
function Sa(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;return c}var Ta={animationend:Sa("Animation","AnimationEnd"),animationiteration:Sa("Animation","AnimationIteration"),animationstart:Sa("Animation","AnimationStart"),transitionend:Sa("Transition","TransitionEnd")},Ua={},Va={};
Ra&&(Va=document.createElement("div").style,"AnimationEvent"in window||(delete Ta.animationend.animation,delete Ta.animationiteration.animation,delete Ta.animationstart.animation),"TransitionEvent"in window||delete Ta.transitionend.transition);function Wa(a){if(Ua[a])return Ua[a];if(!Ta[a])return a;var b=Ta[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Va)return Ua[a]=b[c];return a}
var Xa=Wa("animationend"),Ya=Wa("animationiteration"),Za=Wa("animationstart"),ab=Wa("transitionend"),bb="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),cb=null,db=null,eb=null;
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[2],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[3],{
/***/ "B5Ud":
/***/ (function(module, exports, __webpack_require__) {
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[3],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
/***/ "+iuc":
/***/ (function(module, exports, __webpack_require__) {
@@ -229,7 +229,7 @@ _Object$defineProperty(exports, "__esModule", {
var react_1 = __webpack_require__("q1tI");
-var isServer = false;
+var isServer = "object" === 'undefined';
exports["default"] = function () {
var mountedInstances = new _Set();
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
/***/ "RNiq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
/***/ "/h46":
/***/ (function(module, exports, __webpack_require__) {
@@ -26,11 +26,10 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("YFqc");
/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);
-var __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;
function aLink(props) {
- return __jsx("div", null, __jsx("h3", null, "A Link page!"), __jsx(next_link__WEBPACK_IMPORTED_MODULE_1___default.a, {
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h3", null, "A Link page!"), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(next_link__WEBPACK_IMPORTED_MODULE_1___default.a, {
href: "/"
}, "Go to /"));
}
@@ -158,7 +157,7 @@ function formatUrl(url) {
var observer;
var listeners = new _map["default"]();
-var IntersectionObserver = true ? window.IntersectionObserver : undefined;
+var IntersectionObserver = true ? window.IntersectionObserver : undefined;
function getObserver() {
// Return shared instance of IntersectionObserver if already created
@@ -299,7 +298,7 @@ function (_react$Component) {
}, {
key: "prefetch",
value: function prefetch() {
- if (!this.p || false) return; // Prefetch the JSON page if asked (only in the client)
+ if (!this.p || "object" === 'undefined') return; // Prefetch the JSON page if asked (only in the client)
var pathname = window.location.pathname;
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
/***/ "LtRI":
/***/ (function(module, exports, __webpack_require__) {
@@ -23,13 +23,12 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("nOHt");
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_1__);
-var __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;
/* eslint-disable-next-line */
function routerDirect(props) {
- return __jsx("div", null, "I import the router directly");
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null, "I import the router directly");
}
routerDirect.getInitialProps = function () {
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
/***/ "0Hlz":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -10,11 +10,10 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("nOHt");
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_1__);
-var __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;
function useWithRouter(props) {
- return __jsx("div", null, "I use withRouter");
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null, "I use withRouter");
}
useWithRouter.getInitialProps = function () {
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[2],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[3],{
/***/ "+oT+":
/***/ (function(module, exports, __webpack_require__) {
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[3],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
/***/ "+iuc":
/***/ (function(module, exports, __webpack_require__) {
@@ -171,7 +171,7 @@ _Object$defineProperty(exports, "__esModule", {
const react_1 = __webpack_require__("q1tI");
-const isServer = false;
+const isServer = "object" === 'undefined';
exports.default = () => {
const mountedInstances = new _Set();
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
/***/ "RNiq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
/***/ "/h46":
/***/ (function(module, exports, __webpack_require__) {
@@ -26,11 +26,10 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("YFqc");
/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);
-var __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;
function aLink(props) {
- return __jsx("div", null, __jsx("h3", null, "A Link page!"), __jsx(next_link__WEBPACK_IMPORTED_MODULE_1___default.a, {
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h3", null, "A Link page!"), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(next_link__WEBPACK_IMPORTED_MODULE_1___default.a, {
href: "/"
}, "Go to /"));
}
@@ -146,7 +145,7 @@ function formatUrl(url) {
let observer;
const listeners = new _map.default();
-const IntersectionObserver = true ? window.IntersectionObserver : undefined;
+const IntersectionObserver = true ? window.IntersectionObserver : undefined;
function getObserver() {
// Return shared instance of IntersectionObserver if already created
@@ -278,7 +277,7 @@ class Link extends _react.Component {
prefetch() {
- if (!this.p || false) return; // Prefetch the JSON page if asked (only in the client)
+ if (!this.p || "object" === 'undefined') return; // Prefetch the JSON page if asked (only in the client)
const {
pathname
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
/***/ "LtRI":
/***/ (function(module, exports, __webpack_require__) {
@@ -23,13 +23,12 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("nOHt");
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_1__);
-var __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;
/* eslint-disable-next-line */
function routerDirect(props) {
- return __jsx("div", null, "I import the router directly");
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null, "I import the router directly");
}
routerDirect.getInitialProps = () => ({});
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
/***/ "0Hlz":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -10,11 +10,10 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("nOHt");
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_1__);
-var __jsx = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement;
function useWithRouter(props) {
- return __jsx("div", null, "I use withRouter");
+ return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null, "I use withRouter");
}
useWithRouter.getInitialProps = () => ({});
Serverless Mode (Increase detected ⚠️ )
General Overall decrease ✓
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
buildDuration | 24.3s | 23.8s | -450ms |
nodeModulesSize | 41.2 MB | 41.2 MB | -36.5 kB |
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.js | 13.7 kB | 13.8 kB | |
main-HASH.js gzip | 4.84 kB | 4.87 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
commons.HASH.js | 194 kB | 194 kB | -135 B |
commons.HASH.js gzip | 63.1 kB | 63.1 kB | -26 B |
Overall change | -1 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.module.js | 11.3 kB | 11.4 kB | |
main-HASH.module.js gzip | 4.3 kB | 4.31 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
commons.HASH.module.js | 176 kB | 175 kB | -110 B |
commons.HASH.module.js gzip | 57.2 kB | 57.1 kB | -22 B |
Overall change | -23 B |
Client Pages Overall increase ⚠️
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.js | 1.9 kB | 1.9 kB | ✓ |
_app.js gzip | 905 B | 905 B | ✓ |
_error.js | 8.02 kB | 8.02 kB | ✓ |
_error.js gzip | 3.12 kB | 3.12 kB | ✓ |
index.js | 343 B | 343 B | ✓ |
index.js gzip | 237 B | 237 B | ✓ |
link.js | 4.04 kB | 4.07 kB | |
link.js gzip | 1.79 kB | 1.79 kB | |
routerDirect.js | 429 B | 423 B | -6 B |
routerDirect.js gzip | 293 B | 290 B | -3 B |
withRouter.js | 439 B | 435 B | -4 B |
withRouter.js gzip | 290 B | 286 B | -4 B |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.module.js | 1.79 kB | 1.79 kB | ✓ |
_app.module.js gzip | 865 B | 865 B | ✓ |
_error.module.js | 5.82 kB | 5.82 kB | ✓ |
_error.module.js gzip | 2.33 kB | 2.33 kB | ✓ |
index.module.js | 319 B | 319 B | ✓ |
index.module.js gzip | 238 B | 238 B | ✓ |
link.module.js | 3.75 kB | 3.78 kB | |
link.module.js gzip | 1.7 kB | 1.7 kB | |
routerDirect.module.js | 417 B | 411 B | -6 B |
routerDirect.module.js gzip | 293 B | 291 B | -2 B |
withRouter.module.js | 427 B | 423 B | -4 B |
withRouter.module.js gzip | 292 B | 288 B | -4 B |
Overall change |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_error.js | 246 kB | 247 kB | |
_error.js gzip | 66.1 kB | 66.2 kB | |
index.js | 247 kB | 247 kB | |
index.js gzip | 66.5 kB | 66.5 kB | -12 B |
link.js | 254 kB | 255 kB | |
link.js gzip | 68.7 kB | 68.7 kB | |
routerDirect.js | 247 kB | 248 kB | |
routerDirect.js gzip | 66.5 kB | 66.4 kB | -71 B |
withRouter.js | 247 kB | 248 kB | |
withRouter.js gzip | 66.7 kB | 66.5 kB | -141 B |
Overall change |
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
buildDuration | 22.4s | 22.1s | -288ms |
nodeModulesSize | 41.2 MB | 41.2 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 18.1 kB | ✓ |
main-HASH.js gzip | 6.63 kB | 6.63 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 16.5 kB | ✓ |
main-HASH.module.js gzip | 6.36 kB | 6.36 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change | ✓ |
Client Pages
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.js | 1.9 kB | 1.9 kB | ✓ |
_app.js gzip | 908 B | 908 B | ✓ |
_error.js | 12.1 kB | 12.1 kB | ✓ |
_error.js gzip | 4.76 kB | 4.76 kB | ✓ |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.81 kB | 4.81 kB | ✓ |
index.js | 343 B | 343 B | ✓ |
index.js gzip | 237 B | 237 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.49 kB | 3.49 kB | ✓ |
routerDirect.js | 433 B | 433 B | ✓ |
routerDirect.js gzip | 296 B | 296 B | ✓ |
withRouter.js | 444 B | 444 B | ✓ |
withRouter.js gzip | 294 B | 294 B | ✓ |
Overall change | ✓ |
Client Pages Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.module.js | 1.79 kB | 1.79 kB | ✓ |
_app.module.js gzip | 867 B | 867 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | ✓ |
_error.module.js gzip | 8.62 kB | 8.62 kB | ✓ |
hooks.module.js | 1.55 kB | 1.55 kB | ✓ |
hooks.module.js gzip | 804 B | 804 B | ✓ |
index.module.js | 319 B | 319 B | ✓ |
index.module.js gzip | 238 B | 238 B | ✓ |
link.module.js | 8.52 kB | 8.52 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 419 B | 419 B | ✓ |
routerDirect.module.js gzip | 294 B | 294 B | ✓ |
withRouter.module.js | 429 B | 429 B | ✓ |
withRouter.module.js gzip | 293 B | 293 B | ✓ |
Overall change | ✓ |
Client Build Manifests Overall decrease ✓
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 519 B | 518 B | -1 B |
_buildManifest.module.js gzip | 311 B | 310 B | -1 B |
Overall change | -1 B |
Fetched pages Overall decrease ✓
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
link | 3.75 kB | 3.74 kB | -3 B |
link gzip | 963 B | 963 B | ✓ |
index | 3.69 kB | 3.69 kB | -3 B |
index gzip | 955 B | 956 B | |
withRouter | 3.75 kB | 3.75 kB | -3 B |
withRouter gzip | 950 B | 951 B | |
Overall change | -9 B |
Diffs
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = (function(a,b,c,d){return {"/":[a,b],"/_error":[a,c,b],"/hooks":[a,c,b],"/index":[a,b],"/link":[a,c,d,b],"/routerDirect":[a,c,d,b],"/withRouter":[a,c,d,b]}}("static\u002Fruntime\u002Fwebpack-7928590be3ef2e55b835.module.js","static\u002Fruntime\u002Fmain-26f52093cd5cae22a02c.module.js","static\u002Fchunks\u002Fframework.cdb73e402d876d4ac87f.module.js","static\u002Fchunks\u002FiN0bWg3TxNtM0HBOdOT0Xy3B9Q=.2da329b7caecfd217e7f.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a,b,c,d){return {"/":[a,b],"/_error":[a,c,b],"/hooks":[a,c,b],"/index":[a,b],"/link":[a,c,d,b],"/routerDirect":[a,c,d,b],"/withRouter":[a,c,d,b]}}("static\u002Fruntime\u002Fwebpack-7928590be3ef2e55b835.module.js","static\u002Fruntime\u002Fmain-26f52093cd5cae22a02c.module.js","static\u002Fchunks\u002Fframework.cdb73e402d876d4ac87f.module.js","static\u002Fchunks\u002Fw4aV5Uxyc7dSYmcM4Qdb63LJCDY=.2da329b7caecfd217e7f.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
buildDuration | 24.1s | 24s | -49ms |
nodeModulesSize | 41.2 MB | 41.2 MB |
Client Bundles (main, webpack, commons)
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 18.1 kB | ✓ |
main-HASH.js gzip | 6.63 kB | 6.63 kB | ✓ |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 16.5 kB | ✓ |
main-HASH.module.js gzip | 6.36 kB | 6.36 kB | ✓ |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change | ✓ |
Client Pages
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.js | 1.9 kB | 1.9 kB | ✓ |
_app.js gzip | 908 B | 908 B | ✓ |
_error.js | 12.1 kB | 12.1 kB | ✓ |
_error.js gzip | 4.76 kB | 4.76 kB | ✓ |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.81 kB | 4.81 kB | ✓ |
index.js | 343 B | 343 B | ✓ |
index.js gzip | 237 B | 237 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.49 kB | 3.49 kB | ✓ |
routerDirect.js | 433 B | 433 B | ✓ |
routerDirect.js gzip | 296 B | 296 B | ✓ |
withRouter.js | 444 B | 444 B | ✓ |
withRouter.js gzip | 294 B | 294 B | ✓ |
Overall change | ✓ |
Client Pages Modern
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_app.module.js | 1.79 kB | 1.79 kB | ✓ |
_app.module.js gzip | 867 B | 867 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | ✓ |
_error.module.js gzip | 8.62 kB | 8.62 kB | ✓ |
hooks.module.js | 1.55 kB | 1.55 kB | ✓ |
hooks.module.js gzip | 804 B | 804 B | ✓ |
index.module.js | 319 B | 319 B | ✓ |
index.module.js gzip | 238 B | 238 B | ✓ |
link.module.js | 8.52 kB | 8.52 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 419 B | 419 B | ✓ |
routerDirect.module.js gzip | 294 B | 294 B | ✓ |
withRouter.module.js | 429 B | 429 B | ✓ |
withRouter.module.js gzip | 293 B | 293 B | ✓ |
Overall change | ✓ |
Client Build Manifests
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 519 B | 519 B | ✓ |
_buildManifest.module.js gzip | 311 B | 311 B | ✓ |
Overall change | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | developit/next.js experimental-optimize-libraries | Change | |
---|---|---|---|
_error.js | 248 kB | 248 kB | |
_error.js gzip | 66.4 kB | 66.3 kB | -153 B |
hooks.html | 3.81 kB | 3.81 kB | |
hooks.html gzip | 975 B | 982 B | |
index.js | 248 kB | 248 kB | |
index.js gzip | 66.6 kB | 66.7 kB | |
link.js | 256 kB | 256 kB | |
link.js gzip | 68.8 kB | 68.9 kB | |
routerDirect.js | 249 kB | 249 kB | |
routerDirect.js gzip | 66.7 kB | 66.6 kB | -57 B |
withRouter.js | 249 kB | 249 kB | |
withRouter.js gzip | 66.7 kB | 66.8 kB | |
Overall change |
🤔 Why is this option namespaced as |
@kachkaev it's not experimental anymore, it'll be the default in the future. |
We're also going to add a message that urges users to opt-into the new behavior. |
I tested with v10.2.0 and it was not on by default. I had to explicitly enable it with the flag. |
@connor-baer , I am confused. Can you please tell me what the flag is and where can I use it? Thanks. |
@Arjun0o Inside your module.exports = {
future: {
excludeDefaultMomentLocales: true
}
}; |
@connor-baer, Got it. Thank you. |
Add experimental
optimizeLibraries
flag, which currently just prunes Moment.js locales as per #8300.