Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Store css file dependencies info for dynamic imports and apply it at SSR#12843

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
kodiakhq merged 37 commits intovercel:canaryfromkhades:canary
Aug 24, 2020
Merged

Conversation

@khades
Copy link
Contributor

@khadeskhades commentedMay 13, 2020
edited
Loading

To prevent FOUC, discussed in#10557 i need to store information about css file dependencies for chunk. Right now current implementation just throws away everything but js.

Can there be more than one css file in chunk? If no - code will be simplified.

closes#10557

adamayres and mithi reacted with thumbs up emoji
@ijjk
Copy link
Member

Stats from current PR

Default Server Mode (Increase detected⚠️)
General Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
buildDuration13.7s13.3s-462ms
nodeModulesSize58.7 MB58.7 MB⚠️ +199 B
Page Load Tests Overall increase ✓
zeit/next.js canarykhades/next.js canaryChange
/ failed reqs00
/ total time (seconds)2.2832.224-0.06
/ avg req/sec1094.881123.96⚠️ +29.08
/error-in-render failed reqs00
/error-in-render total time (seconds)1.4881.424-0.06
/error-in-render avg req/sec1679.681755.73⚠️ +76.05
Client Bundles (main, webpack, commons)
zeit/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.68 kB6.68 kB
webpack-HASH.js gzip746 B746 B
de003c3a9d30..e49d.js gzip10.4 kB10.4 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57 kB57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip746 B746 B
de003c3a9d30..dule.js gzip6.85 kB6.85 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.5 kB52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.3 kB26.3 kB
Overall change26.3 kB26.3 kB
Client Pages
zeit/next.js canarykhades/next.js canaryChange
_app.js gzip1.26 kB1.26 kB
_error.js gzip3.29 kB3.29 kB
hooks.js gzip880 B880 B
index.js gzip222 B222 B
link.js gzip2.06 kB2.06 kB
routerDirect.js gzip280 B280 B
withRouter.js gzip278 B278 B
Overall change8.26 kB8.26 kB
Client Pages Modern
zeit/next.js canarykhades/next.js canaryChange
_app.module.js gzip599 B599 B
_error.module.js gzip2.09 kB2.09 kB
hooks.module.js gzip383 B383 B
index.module.js gzip223 B223 B
link.module.js gzip1.52 kB1.52 kB
routerDirect..dule.js gzip279 B279 B
withRouter.m..dule.js gzip278 B278 B
Overall change5.37 kB5.37 kB
Client Build Manifests
zeit/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip61 B61 B
_buildManife..dule.js gzip61 B61 B
Overall change122 B122 B
Rendered Page Sizes
zeit/next.js canarykhades/next.js canaryChange
index.html gzip927 B927 B
link.html gzip937 B937 B
withRouter.html gzip923 B923 B
Overall change2.79 kB2.79 kB

Serverless Mode
General Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
buildDuration13.4s14.5s⚠️ +1.1s
nodeModulesSize58.7 MB58.7 MB⚠️ +199 B
Client Bundles (main, webpack, commons)
zeit/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.68 kB6.68 kB
webpack-HASH.js gzip746 B746 B
de003c3a9d30..e49d.js gzip10.4 kB10.4 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57 kB57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip746 B746 B
de003c3a9d30..dule.js gzip6.85 kB6.85 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.5 kB52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.3 kB26.3 kB
Overall change26.3 kB26.3 kB
Client Pages
zeit/next.js canarykhades/next.js canaryChange
_app.js gzip1.26 kB1.26 kB
_error.js gzip3.29 kB3.29 kB
hooks.js gzip880 B880 B
index.js gzip222 B222 B
link.js gzip2.06 kB2.06 kB
routerDirect.js gzip280 B280 B
withRouter.js gzip278 B278 B
Overall change8.26 kB8.26 kB
Client Pages Modern
zeit/next.js canarykhades/next.js canaryChange
_app.module.js gzip599 B599 B
_error.module.js gzip2.09 kB2.09 kB
hooks.module.js gzip383 B383 B
index.module.js gzip223 B223 B
link.module.js gzip1.52 kB1.52 kB
routerDirect..dule.js gzip279 B279 B
withRouter.m..dule.js gzip278 B278 B
Overall change5.37 kB5.37 kB
Client Build Manifests
zeit/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip61 B61 B
_buildManife..dule.js gzip61 B61 B
Overall change122 B122 B
Serverless bundles
zeit/next.js canarykhades/next.js canaryChange
_error.js850 kB850 kB
404.html4.18 kB4.18 kB
hooks.html3.81 kB3.81 kB
index.js851 kB851 kB
link.js888 kB888 kB
routerDirect.js880 kB880 kB
withRouter.js880 kB880 kB
Overall change4.36 MB4.36 MB

@khadeskhades changed the titleStore css file dependency info for dynamic importsStore css file dependency info for dynamic imports and apply it at SSRMay 14, 2020
@khadeskhades changed the titleStore css file dependency info for dynamic imports and apply it at SSRStore css file dependencies info for dynamic imports and apply it at SSRMay 14, 2020
@khadeskhades marked this pull request as ready for reviewMay 14, 2020 09:01
@ijjk
Copy link
Member

Stats from current PR

Default Server Mode (Increase detected⚠️)
General Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
buildDuration12.4s12.4s⚠️ +65ms
nodeModulesSize58.7 MB58.7 MB⚠️ +515 B
Page Load Tests Overall increase ✓
zeit/next.js canarykhades/next.js canaryChange
/ failed reqs00
/ total time (seconds)2.1522.107-0.04
/ avg req/sec1161.691186.43⚠️ +24.74
/error-in-render failed reqs00
/error-in-render total time (seconds)1.3811.33-0.05
/error-in-render avg req/sec1810.791879.94⚠️ +69.15
Client Bundles (main, webpack, commons)
zeit/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.68 kB6.68 kB
webpack-HASH.js gzip746 B746 B
de003c3a9d30..e49d.js gzip10.4 kB10.4 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57 kB57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip746 B746 B
de003c3a9d30..dule.js gzip6.85 kB6.85 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.5 kB52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.3 kB26.3 kB
Overall change26.3 kB26.3 kB
Client Pages
zeit/next.js canarykhades/next.js canaryChange
_app.js gzip1.26 kB1.26 kB
_error.js gzip3.29 kB3.29 kB
hooks.js gzip880 B880 B
index.js gzip222 B222 B
link.js gzip2.06 kB2.06 kB
routerDirect.js gzip280 B280 B
withRouter.js gzip278 B278 B
Overall change8.26 kB8.26 kB
Client Pages Modern
zeit/next.js canarykhades/next.js canaryChange
_app.module.js gzip599 B599 B
_error.module.js gzip2.09 kB2.09 kB
hooks.module.js gzip383 B383 B
index.module.js gzip223 B223 B
link.module.js gzip1.52 kB1.52 kB
routerDirect..dule.js gzip279 B279 B
withRouter.m..dule.js gzip278 B278 B
Overall change5.37 kB5.37 kB
Client Build Manifests
zeit/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip61 B61 B
_buildManife..dule.js gzip61 B61 B
Overall change122 B122 B
Rendered Page Sizes
zeit/next.js canarykhades/next.js canaryChange
index.html gzip926 B926 B
link.html gzip936 B936 B
withRouter.html gzip923 B923 B
Overall change2.79 kB2.79 kB

Serverless Mode (Increase detected⚠️)
General Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
buildDuration13.4s13.5s⚠️ +103ms
nodeModulesSize58.7 MB58.7 MB⚠️ +515 B
Client Bundles (main, webpack, commons)
zeit/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.68 kB6.68 kB
webpack-HASH.js gzip746 B746 B
de003c3a9d30..e49d.js gzip10.4 kB10.4 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57 kB57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip746 B746 B
de003c3a9d30..dule.js gzip6.85 kB6.85 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.5 kB52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.3 kB26.3 kB
Overall change26.3 kB26.3 kB
Client Pages
zeit/next.js canarykhades/next.js canaryChange
_app.js gzip1.26 kB1.26 kB
_error.js gzip3.29 kB3.29 kB
hooks.js gzip880 B880 B
index.js gzip222 B222 B
link.js gzip2.06 kB2.06 kB
routerDirect.js gzip280 B280 B
withRouter.js gzip278 B278 B
Overall change8.26 kB8.26 kB
Client Pages Modern
zeit/next.js canarykhades/next.js canaryChange
_app.module.js gzip599 B599 B
_error.module.js gzip2.09 kB2.09 kB
hooks.module.js gzip383 B383 B
index.module.js gzip223 B223 B
link.module.js gzip1.52 kB1.52 kB
routerDirect..dule.js gzip279 B279 B
withRouter.m..dule.js gzip278 B278 B
Overall change5.37 kB5.37 kB
Client Build Manifests
zeit/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip61 B61 B
_buildManife..dule.js gzip61 B61 B
Overall change122 B122 B
Serverless bundles Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
_error.js850 kB852 kB⚠️ +1.49 kB
404.html4.18 kB4.18 kB
hooks.html3.81 kB3.81 kB
index.js851 kB852 kB⚠️ +1.49 kB
link.js888 kB889 kB⚠️ +1.49 kB
routerDirect.js880 kB882 kB⚠️ +1.49 kB
withRouter.js880 kB882 kB⚠️ +1.49 kB
Overall change4.36 MB4.37 MB⚠️ +7.46 kB

@ijjk
Copy link
Member

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
buildDuration12.3s12.4s⚠️ +132ms
nodeModulesSize58.7 MB58.7 MB⚠️ +515 B
Page Load Tests Overall decrease⚠️
zeit/next.js canarykhades/next.js canaryChange
/ failed reqs00
/ total time (seconds)2.0872.037-0.05
/ avg req/sec1198.151227.59⚠️ +29.44
/error-in-render failed reqs00
/error-in-render total time (seconds)1.191.213⚠️ +0.02
/error-in-render avg req/sec2101.572060.31-41.26
Client Bundles (main, webpack, commons)
zeit/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.68 kB6.68 kB
webpack-HASH.js gzip746 B746 B
de003c3a9d30..e49d.js gzip10.4 kB10.4 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57 kB57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip746 B746 B
de003c3a9d30..dule.js gzip6.85 kB6.85 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.5 kB52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.3 kB26.3 kB
Overall change26.3 kB26.3 kB
Client Pages
zeit/next.js canarykhades/next.js canaryChange
_app.js gzip1.26 kB1.26 kB
_error.js gzip3.29 kB3.29 kB
hooks.js gzip880 B880 B
index.js gzip222 B222 B
link.js gzip2.06 kB2.06 kB
routerDirect.js gzip280 B280 B
withRouter.js gzip278 B278 B
Overall change8.26 kB8.26 kB
Client Pages Modern
zeit/next.js canarykhades/next.js canaryChange
_app.module.js gzip599 B599 B
_error.module.js gzip2.09 kB2.09 kB
hooks.module.js gzip383 B383 B
index.module.js gzip223 B223 B
link.module.js gzip1.52 kB1.52 kB
routerDirect..dule.js gzip279 B279 B
withRouter.m..dule.js gzip278 B278 B
Overall change5.37 kB5.37 kB
Client Build Manifests
zeit/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip61 B61 B
_buildManife..dule.js gzip61 B61 B
Overall change122 B122 B
Rendered Page Sizes
zeit/next.js canarykhades/next.js canaryChange
index.html gzip926 B926 B
link.html gzip936 B936 B
withRouter.html gzip923 B923 B
Overall change2.79 kB2.79 kB

Serverless Mode (Increase detected⚠️)
General Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
buildDuration13.1s13.2s⚠️ +109ms
nodeModulesSize58.7 MB58.7 MB⚠️ +515 B
Client Bundles (main, webpack, commons)
zeit/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.68 kB6.68 kB
webpack-HASH.js gzip746 B746 B
de003c3a9d30..e49d.js gzip10.4 kB10.4 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57 kB57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip746 B746 B
de003c3a9d30..dule.js gzip6.85 kB6.85 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.5 kB52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.3 kB26.3 kB
Overall change26.3 kB26.3 kB
Client Pages
zeit/next.js canarykhades/next.js canaryChange
_app.js gzip1.26 kB1.26 kB
_error.js gzip3.29 kB3.29 kB
hooks.js gzip880 B880 B
index.js gzip222 B222 B
link.js gzip2.06 kB2.06 kB
routerDirect.js gzip280 B280 B
withRouter.js gzip278 B278 B
Overall change8.26 kB8.26 kB
Client Pages Modern
zeit/next.js canarykhades/next.js canaryChange
_app.module.js gzip599 B599 B
_error.module.js gzip2.09 kB2.09 kB
hooks.module.js gzip383 B383 B
index.module.js gzip223 B223 B
link.module.js gzip1.52 kB1.52 kB
routerDirect..dule.js gzip279 B279 B
withRouter.m..dule.js gzip278 B278 B
Overall change5.37 kB5.37 kB
Client Build Manifests
zeit/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip61 B61 B
_buildManife..dule.js gzip61 B61 B
Overall change122 B122 B
Serverless bundles Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
_error.js850 kB852 kB⚠️ +1.49 kB
404.html4.18 kB4.18 kB
hooks.html3.81 kB3.81 kB
index.js851 kB852 kB⚠️ +1.49 kB
link.js888 kB889 kB⚠️ +1.49 kB
routerDirect.js880 kB882 kB⚠️ +1.49 kB
withRouter.js880 kB882 kB⚠️ +1.49 kB
Overall change4.36 MB4.37 MB⚠️ +7.46 kB

Copy link
Member

@timneutkenstimneutkens left a comment

Choose a reason for hiding this comment

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

Could you add integration tests for this totest/integration/production andtest/ingration/basic (I believe those have next/dynamic tests already)

@khades
Copy link
ContributorAuthor

Could you add integration tests for this totest/integration/production andtest/ingration/basic (I believe those have next/dynamic tests already)

yes, i will try to do that

@khades
Copy link
ContributorAuthor

@timneutkens isn't mini-css-extract-plugin enabled only in production mode?

@ijjk
Copy link
Member

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
buildDuration12.8s12.8s-5ms
nodeModulesSize58.7 MB58.7 MB⚠️ +515 B
Page Load Tests Overall decrease⚠️
zeit/next.js canarykhades/next.js canaryChange
/ failed reqs00
/ total time (seconds)2.1112.215⚠️ +0.1
/ avg req/sec1184.121128.42-55.7
/error-in-render failed reqs00
/error-in-render total time (seconds)1.3671.408⚠️ +0.04
/error-in-render avg req/sec1828.341776.15-52.19
Client Bundles (main, webpack, commons)
zeit/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.68 kB6.68 kB
webpack-HASH.js gzip746 B746 B
de003c3a9d30..e49d.js gzip10.4 kB10.4 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57 kB57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip746 B746 B
de003c3a9d30..dule.js gzip6.85 kB6.85 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.5 kB52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.3 kB26.3 kB
Overall change26.3 kB26.3 kB
Client Pages
zeit/next.js canarykhades/next.js canaryChange
_app.js gzip1.26 kB1.26 kB
_error.js gzip3.29 kB3.29 kB
hooks.js gzip880 B880 B
index.js gzip222 B222 B
link.js gzip2.06 kB2.06 kB
routerDirect.js gzip280 B280 B
withRouter.js gzip278 B278 B
Overall change8.26 kB8.26 kB
Client Pages Modern
zeit/next.js canarykhades/next.js canaryChange
_app.module.js gzip599 B599 B
_error.module.js gzip2.09 kB2.09 kB
hooks.module.js gzip383 B383 B
index.module.js gzip223 B223 B
link.module.js gzip1.52 kB1.52 kB
routerDirect..dule.js gzip279 B279 B
withRouter.m..dule.js gzip278 B278 B
Overall change5.37 kB5.37 kB
Client Build Manifests
zeit/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip61 B61 B
_buildManife..dule.js gzip61 B61 B
Overall change122 B122 B
Rendered Page Sizes
zeit/next.js canarykhades/next.js canaryChange
index.html gzip927 B927 B
link.html gzip936 B936 B
withRouter.html gzip923 B923 B
Overall change2.79 kB2.79 kB

Serverless Mode (Increase detected⚠️)
General Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
buildDuration13.8s13.9s⚠️ +162ms
nodeModulesSize58.7 MB58.7 MB⚠️ +515 B
Client Bundles (main, webpack, commons)
zeit/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.68 kB6.68 kB
webpack-HASH.js gzip746 B746 B
de003c3a9d30..e49d.js gzip10.4 kB10.4 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57 kB57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip746 B746 B
de003c3a9d30..dule.js gzip6.85 kB6.85 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.5 kB52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.3 kB26.3 kB
Overall change26.3 kB26.3 kB
Client Pages
zeit/next.js canarykhades/next.js canaryChange
_app.js gzip1.26 kB1.26 kB
_error.js gzip3.29 kB3.29 kB
hooks.js gzip880 B880 B
index.js gzip222 B222 B
link.js gzip2.06 kB2.06 kB
routerDirect.js gzip280 B280 B
withRouter.js gzip278 B278 B
Overall change8.26 kB8.26 kB
Client Pages Modern
zeit/next.js canarykhades/next.js canaryChange
_app.module.js gzip599 B599 B
_error.module.js gzip2.09 kB2.09 kB
hooks.module.js gzip383 B383 B
index.module.js gzip223 B223 B
link.module.js gzip1.52 kB1.52 kB
routerDirect..dule.js gzip279 B279 B
withRouter.m..dule.js gzip278 B278 B
Overall change5.37 kB5.37 kB
Client Build Manifests
zeit/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip61 B61 B
_buildManife..dule.js gzip61 B61 B
Overall change122 B122 B
Serverless bundles Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
_error.js850 kB852 kB⚠️ +1.49 kB
404.html4.18 kB4.18 kB
hooks.html3.81 kB3.81 kB
index.js851 kB852 kB⚠️ +1.49 kB
link.js888 kB889 kB⚠️ +1.49 kB
routerDirect.js880 kB882 kB⚠️ +1.49 kB
withRouter.js880 kB882 kB⚠️ +1.49 kB
Overall change4.36 MB4.37 MB⚠️ +7.46 kB

@ijjk
Copy link
Member

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
buildDuration13.6s13.7s⚠️ +94ms
nodeModulesSize58.7 MB58.7 MB⚠️ +515 B
Page Load Tests Overall decrease⚠️
zeit/next.js canarykhades/next.js canaryChange
/ failed reqs00
/ total time (seconds)2.2862.368⚠️ +0.08
/ avg req/sec1093.661055.91-37.75
/error-in-render failed reqs00
/error-in-render total time (seconds)1.461.523⚠️ +0.06
/error-in-render avg req/sec1712.041641.7-70.34
Client Bundles (main, webpack, commons)
zeit/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.68 kB6.68 kB
webpack-HASH.js gzip746 B746 B
de003c3a9d30..e49d.js gzip10.4 kB10.4 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57 kB57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip746 B746 B
de003c3a9d30..dule.js gzip6.85 kB6.85 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.5 kB52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.3 kB26.3 kB
Overall change26.3 kB26.3 kB
Client Pages
zeit/next.js canarykhades/next.js canaryChange
_app.js gzip1.26 kB1.26 kB
_error.js gzip3.29 kB3.29 kB
hooks.js gzip880 B880 B
index.js gzip222 B222 B
link.js gzip2.06 kB2.06 kB
routerDirect.js gzip280 B280 B
withRouter.js gzip278 B278 B
Overall change8.26 kB8.26 kB
Client Pages Modern
zeit/next.js canarykhades/next.js canaryChange
_app.module.js gzip599 B599 B
_error.module.js gzip2.09 kB2.09 kB
hooks.module.js gzip383 B383 B
index.module.js gzip223 B223 B
link.module.js gzip1.52 kB1.52 kB
routerDirect..dule.js gzip279 B279 B
withRouter.m..dule.js gzip278 B278 B
Overall change5.37 kB5.37 kB
Client Build Manifests
zeit/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip61 B61 B
_buildManife..dule.js gzip61 B61 B
Overall change122 B122 B
Rendered Page Sizes
zeit/next.js canarykhades/next.js canaryChange
index.html gzip927 B927 B
link.html gzip936 B936 B
withRouter.html gzip923 B923 B
Overall change2.79 kB2.79 kB

Serverless Mode (Increase detected⚠️)
General Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
buildDuration14.8s14.6s-291ms
nodeModulesSize58.7 MB58.7 MB⚠️ +515 B
Client Bundles (main, webpack, commons)
zeit/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.68 kB6.68 kB
webpack-HASH.js gzip746 B746 B
de003c3a9d30..e49d.js gzip10.4 kB10.4 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57 kB57 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip746 B746 B
de003c3a9d30..dule.js gzip6.85 kB6.85 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.5 kB52.5 kB
Legacy Client Bundles (polyfills)
zeit/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.3 kB26.3 kB
Overall change26.3 kB26.3 kB
Client Pages
zeit/next.js canarykhades/next.js canaryChange
_app.js gzip1.26 kB1.26 kB
_error.js gzip3.29 kB3.29 kB
hooks.js gzip880 B880 B
index.js gzip222 B222 B
link.js gzip2.06 kB2.06 kB
routerDirect.js gzip280 B280 B
withRouter.js gzip278 B278 B
Overall change8.26 kB8.26 kB
Client Pages Modern
zeit/next.js canarykhades/next.js canaryChange
_app.module.js gzip599 B599 B
_error.module.js gzip2.09 kB2.09 kB
hooks.module.js gzip383 B383 B
index.module.js gzip223 B223 B
link.module.js gzip1.52 kB1.52 kB
routerDirect..dule.js gzip279 B279 B
withRouter.m..dule.js gzip278 B278 B
Overall change5.37 kB5.37 kB
Client Build Manifests
zeit/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip61 B61 B
_buildManife..dule.js gzip61 B61 B
Overall change122 B122 B
Serverless bundles Overall increase⚠️
zeit/next.js canarykhades/next.js canaryChange
_error.js850 kB852 kB⚠️ +1.49 kB
404.html4.18 kB4.18 kB
hooks.html3.81 kB3.81 kB
index.js851 kB852 kB⚠️ +1.49 kB
link.js888 kB889 kB⚠️ +1.49 kB
routerDirect.js880 kB882 kB⚠️ +1.49 kB
withRouter.js880 kB882 kB⚠️ +1.49 kB
Overall change4.36 MB4.37 MB⚠️ +7.46 kB

@khadeskhades marked this pull request as draftMay 14, 2020 17:22
@ijjk
Copy link
Member

Failing test suites

test/integration/basic/test/index.test.js

  • Basic Features > Dynamic import > Import mapping > should render dynamic imports bundle
  • Basic Features > Dynamic import > Import mapping > should render dynamic imports bundle with additional components
  • Basic Features > Dynamic import > Import mapping > should render components
  • Basic Features > Dynamic import > Import mapping > should render support React context
  • Basic Features > Dynamic import > Import mapping > should load new components and render for prop changes
  • Basic Features > Dynamic import > Multiple modules > should only include the rendered module script tag
  • Basic Features > Dynamic import > Multiple modules > should only load the rendered module in the browser
  • Basic Features > Dynamic import > Multiple modules > should only render one bundle if component is used multiple times
  • Basic Features > Dynamic import > custom chunkfilename > should render the correct filename
  • Basic Features > Dynamic import > custom chunkfilename > should render the component on client side
  • Basic Features > Dynamic import > custom loading > should render custom loading on the server side whenssr:false andloading is provided
  • Basic Features > Dynamic import > custom loading > should render the component on client side
  • Basic Features > Error Recovery > should recover from 404 after a page has been added
  • Basic Features > Error Recovery > should detect syntax errors and recover
  • Basic Features > Error Recovery > should show the error on all pages
  • Basic Features > Error Recovery > should detect runtime errors on the module scope
  • Basic Features > Error Recovery > should recover from errors in the render function
  • Basic Features > Error Recovery > should recover after exporting an invalid page
  • Basic Features > Error Recovery > should recover after a bad return from the render function
  • Basic Features > Error Recovery > should recover after undefined exported as default
  • Basic Features > Error Recovery > should recover from errors in getInitialProps in client
  • Basic Features > Error Recovery > should recover after an error reported via SSR
  • Basic Features > Hot Module Reloading > delete a page and add it back > should load the page properly
  • Basic Features > Hot Module Reloading > editing a page > should detect the changes and display it
  • Basic Features > Hot Module Reloading > editing a page > should not reload unrelated pages
  • Basic Features > Hot Module Reloading > editing a page > should update styles correctly
  • Basic Features > Hot Module Reloading > editing a page > should update styles in a stateful component correctly
  • Basic Features > Hot Module Reloading > editing a page > should update styles in a dynamic component correctly
  • Basic Features > With Security Related Issues > should not allow accessing files outside .next/static and .next/server directory
  • Basic Features > process.env > should set process.env.NODE_ENV in development
Expand output

● Basic Features › Dynamic import › custom chunkfilename › should render the correct filename

expect(received).toMatch(expected)Expected pattern: /test chunkfilename/Received string:  "{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"ModuleNotFoundError\",\"message\":\"Module not found: Error: Can't resolve './hello-chunkfilename.module.scss' in '/home/runner/work/next.js/next.js/test/integration/basic/components'\",\"stack\":\"ModuleNotFoundError: Module not found: Error: Can't resolve './hello-chunkfilename.module.scss' in '/home/runner/work/next.js/next.js/test/integration/basic/components'\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/Compilation.js:925:10\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModuleFactory.js:401:22\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModuleFactory.js:130:21\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModuleFactory.js:224:22\\n    at /home/runner/work/next.js/next.js/node_modules/neo-async/async.js:2830:7\\n    at /home/runner/work/next.js/next.js/node_modules/neo-async/async.js:6877:13\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModuleFactory.js:214:25\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/Resolver.js:213:14\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/Resolver.js:285:5\\n    at eval (eval at create (/home/runner/work/next.js/next.js/node_modules/tapable/lib/HookCodeFactory.js:33:10), \\u003canonymous\\u003e:13:1)\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/Resolver.js:285:5\\n    at eval (eval at create (/home/runner/work/next.js/next.js/node_modules/tapable/lib/HookCodeFactory.js:33:10), \\u003canonymous\\u003e:13:1)\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/Resolver.js:285:5\\n    at eval (eval at create (/home/runner/work/next.js/next.js/node_modules/tapable/lib/HookCodeFactory.js:33:10), \\u003canonymous\\u003e:25:1)\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43\"},\"gip\":true}"  144 |       it('should render the correct filename', async () => {  145 |         const $ = await get$('/dynamic/chunkfilename')> 146 |         expect($('body').text()).toMatch(/test chunkfilename/)      |                                  ^  147 |         expect($('html').html()).toMatch(/hello-world\.js/)  148 |         expect($('html').html()).toMatch(/hello-world-css\.css/)  149 |       })  at Object.<anonymous> (integration/basic/test/dynamic.js:146:34)

● Basic Features › Dynamic import › custom chunkfilename › should render the component on client side

TIMED OUT: /test chunkfilename/Failed to compile./components/hello-chunkfilename.jsModule not found: Can't resolve './hello-chunkfilename.module.scss' in '/home/runner/work/next.js/next.js/test/integration/basic/components'This error occured during the build process and can only be dismissed by fixing the error.  361 |   362 |   if (hardError) {> 363 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content)      |           ^  364 |   }  365 |   return false  366 | }  at check (lib/next-test-utils.js:363:11)  at Object.<anonymous> (integration/basic/test/dynamic.js:155:11)

● Basic Features › Dynamic import › custom loading › should render custom loading on the server side whenssr:false andloading is provided

expect(received).toBe(expected) // Object.is equalityExpected: "LOADING"Received: ""  168 |       it('should render custom loading on the server side when `ssr:false` and `loading` is provided', async () => {  169 |         const $ = await get$('/dynamic/no-ssr-custom-loading')> 170 |         expect($('p').text()).toBe('LOADING')      |                               ^  171 |       })  172 |   173 |       it('should render the component on client side', async () => {  at Object.<anonymous> (integration/basic/test/dynamic.js:170:31)

● Basic Features › Dynamic import › custom loading › should render the component on client side

TIMED OUT: /Hello World 1/Failed to compile./components/hello-chunkfilename.jsModule not found: Can't resolve './hello-chunkfilename.module.scss' in '/home/runner/work/next.js/next.js/test/integration/basic/components'This error occured during the build process and can only be dismissed by fixing the error.  361 |   362 |   if (hardError) {> 363 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content)      |           ^  364 |   }  365 |   return false  366 | }  at check (lib/next-test-utils.js:363:11)  at Object.<anonymous> (integration/basic/test/dynamic.js:180:11)

● Basic Features › Dynamic import › Multiple modules › should only include the rendered module script tag

expect(received).toMatch(expected)Expected pattern: /hello1\.js/Received string:  "<head><style data-next-hide-fouc=\"true\">body{display:none}</style><noscript data-next-hide-fouc=\"true\"><style>body{display:block}</style></noscript><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width\"><meta name=\"next-head-count\" content=\"2\"><link rel=\"preload\" href=\"/_next/static/development/pages/_app.js?ts=1589475628061\" as=\"script\"><link rel=\"preload\" href=\"/_next/static/runtime/webpack.js?ts=1589475628061\" as=\"script\"><link rel=\"preload\" href=\"/_next/static/runtime/main.js?ts=1589475628061\" as=\"script\"><noscript id=\"__next_css__DO_NOT_USE__\"></noscript></head><body><div id=\"__next\"></div><script src=\"/_next/static/runtime/react-refresh.js?ts=1589475628061\"></script><script src=\"/_next/static/development/dll/dll_4837185721bd9b4b2227.js?ts=1589475628061\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"ModuleNotFoundError\",\"message\":\"Module not found: Error: Can't resolve './hello-chunkfilename.module.scss' in '/home/runner/work/next.js/next.js/test/integration/basic/components'\",\"stack\":\"ModuleNotFoundError: Module not found: Error: Can't resolve './hello-chunkfilename.module.scss' in '/home/runner/work/next.js/next.js/test/integration/basic/components'\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/Compilation.js:925:10\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModuleFactory.js:401:22\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModuleFactory.js:130:21\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModuleFactory.js:224:22\\n    at /home/runner/work/next.js/next.js/node_modules/neo-async/async.js:2830:7\\n    at /home/runner/work/next.js/next.js/node_modules/neo-async/async.js:6877:13\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModuleFactory.js:214:25\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/Resolver.js:213:14\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/Resolver.js:285:5\\n    at eval (eval at create (/home/runner/work/next.js/next.js/node_modules/tapable/lib/HookCodeFactory.js:33:10), \\u003canonymous\\u003e:13:1)\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/Resolver.js:285:5\\n    at eval (eval at create (/home/runner/work/next.js/next.js/node_modules/tapable/lib/HookCodeFactory.js:33:10), \\u003canonymous\\u003e:13:1)\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/Resolver.js:285:5\\n    at eval (eval at create (/home/runner/work/next.js/next.js/node_modules/tapable/lib/HookCodeFactory.js:33:10), \\u003canonymous\\u003e:25:1)\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43\"},\"gip\":true}</script><script nomodule src=\"/_next/static/runtime/polyfills.js?ts=1589475628061\"></script><script async data-next-page=\"/_app\" src=\"/_next/static/development/pages/_app.js?ts=1589475628061\"></script><script src=\"/_next/static/runtime/webpack.js?ts=1589475628061\" async></script><script src=\"/_next/static/runtime/main.js?ts=1589475628061\" async></script><script src=\"/_next/static/development/_buildManifest.js?ts=1589475628061\" async></script><script src=\"/_next/static/development/_ssgManifest.js?ts=1589475628061\" async></script></body>"  194 |         const $ = await get$('/dynamic/multiple-modules')  195 |         const html = $('html').html()> 196 |         expect(html).toMatch(/hello1\.js/)      |                      ^  197 |         expect(html).not.toMatch(/hello2\.js/)  198 |       })  199 |   at Object.<anonymous> (integration/basic/test/dynamic.js:196:22)

● Basic Features › Dynamic import › Multiple modules › should only load the rendered module in the browser

expect(received).toMatch(expected)Expected pattern: /hello1\.js/Received string:  "<head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width\"><meta name=\"next-head-count\" content=\"2\"><link rel=\"preload\" href=\"/_next/static/development/pages/_app.js?ts=1589475628190\" as=\"script\"><link rel=\"preload\" href=\"/_next/static/runtime/webpack.js?ts=1589475628190\" as=\"script\"><link rel=\"preload\" href=\"/_next/static/runtime/main.js?ts=1589475628190\" as=\"script\"><noscript id=\"__next_css__DO_NOT_USE__\"></noscript><script charset=\"utf-8\" src=\"/_next/static/chunks/0.js\"></script></head><body style=\"overflow: hidden;\"><div id=\"__next\"></div><script src=\"/_next/static/runtime/react-refresh.js?ts=1589475628190\"></script><script src=\"/_next/static/development/dll/dll_4837185721bd9b4b2227.js?ts=1589475628190\"></script><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"development\",\"isFallback\":false,\"err\":{\"name\":\"ModuleNotFoundError\",\"message\":\"Module not found: Error: Can't resolve './hello-chunkfilename.module.scss' in '/home/runner/work/next.js/next.js/test/integration/basic/components'\",\"stack\":\"ModuleNotFoundError: Module not found: Error: Can't resolve './hello-chunkfilename.module.scss' in '/home/runner/work/next.js/next.js/test/integration/basic/components'\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/Compilation.js:925:10\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModuleFactory.js:401:22\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModuleFactory.js:130:21\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModuleFactory.js:224:22\\n    at /home/runner/work/next.js/next.js/node_modules/neo-async/async.js:2830:7\\n    at /home/runner/work/next.js/next.js/node_modules/neo-async/async.js:6877:13\\n    at /home/runner/work/next.js/next.js/node_modules/webpack/lib/NormalModuleFactory.js:214:25\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/Resolver.js:213:14\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/Resolver.js:285:5\\n    at eval (eval at create (/home/runner/work/next.js/next.js/node_modules/tapable/lib/HookCodeFactory.js:33:10), \\u003canonymous\\u003e:13:1)\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/Resolver.js:285:5\\n    at eval (eval at create (/home/runner/work/next.js/next.js/node_modules/tapable/lib/HookCodeFactory.js:33:10), \\u003canonymous\\u003e:13:1)\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/Resolver.js:285:5\\n    at eval (eval at create (/home/runner/work/next.js/next.js/node_modules/tapable/lib/HookCodeFactory.js:33:10), \\u003canonymous\\u003e:25:1)\\n    at /home/runner/work/next.js/next.js/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43\"},\"gip\":true}</script><script nomodule=\"\" src=\"/_next/static/runtime/polyfills.js?ts=1589475628190\"></script><script async=\"\" data-next-page=\"/_app\" src=\"/_next/static/development/pages/_app.js?ts=1589475628190\"></script><script src=\"/_next/static/runtime/webpack.js?ts=1589475628190\" async=\"\"></script><script src=\"/_next/static/runtime/main.js?ts=1589475628190\" async=\"\"></script><script src=\"/_next/static/development/_buildManifest.js?ts=1589475628190\" async=\"\"></script><script src=\"/_next/static/development/_ssgManifest.js?ts=1589475628190\" async=\"\"></script><script src=\"/_next/static/development/pages/_error.js\"></script><div id=\"__next-build-watcher\" style=\"position: fixed; bottom: 10px; right: 20px; width: 0px; height: 0px; z-index: 99999;\"></div><div id=\"__next-prerender-indicator\" style=\"position: fixed; bottom: 20px; right: 10px; width: 0px; height: 0px; z-index: 99998; transition: all 100ms ease 0s;\"></div><nextjs-portal></nextjs-portal></body>"  208 |             .elementByCss('html')  209 |             .getAttribute('innerHTML')> 210 |           expect(html).toMatch(/hello1\.js/)      |                        ^  211 |           expect(html).not.toMatch(/hello2\.js/)  212 |         } finally {  213 |           if (browser) {  at Object.<anonymous> (integration/basic/test/dynamic.js:210:24)

● Basic Features › Dynamic import › Multiple modules › should only render one bundle if component is used multiple times

TypeError: Cannot read property 'length' of null  221 |         const html = $('html').html()  222 |         try {> 223 |           expect(html.match(/chunks[\\/]hello1\.js/g).length).toBe(2) // one for preload, one for the script tag      |                  ^  224 |           expect(html).not.toMatch(/hello2\.js/)  225 |         } catch (err) {  226 |           console.error(html)  at Object.<anonymous> (integration/basic/test/dynamic.js:223:18)

● Basic Features › Dynamic import › Import mapping › should render dynamic imports bundle

expect(received).toBe(expected) // Object.is equalityExpected: trueReceived: false  234 |         const $ = await get$('/dynamic/bundle')  235 |         const bodyText = $('body').text()> 236 |         expect(/Dynamic Bundle/.test(bodyText)).toBe(true)      |                                                 ^  237 |         expect(/Hello World 1/.test(bodyText)).toBe(true)  238 |         expect(/Hello World 2/.test(bodyText)).toBe(false)  239 |       })  at Object.<anonymous> (integration/basic/test/dynamic.js:236:49)

● Basic Features › Dynamic import › Import mapping › should render dynamic imports bundle with additional components

expect(received).toBe(expected) // Object.is equalityExpected: trueReceived: false  242 |         const $ = await get$('/dynamic/bundle?showMore=1')  243 |         const bodyText = $('body').text()> 244 |         expect(/Dynamic Bundle/.test(bodyText)).toBe(true)      |                                                 ^  245 |         expect(/Hello World 1/.test(bodyText)).toBe(true)  246 |         expect(/Hello World 2/.test(bodyText)).toBe(true)  247 |       })  at Object.<anonymous> (integration/basic/test/dynamic.js:244:49)

● Basic Features › Dynamic import › Import mapping › should render components

: Timeout - Async callback was not invoked within the 300000ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 300000ms timeout specified by jest.setTimeout.Error:  247 |       })  248 | > 249 |       it('should render components', async () => {      |       ^  250 |         const browser = await webdriver(context.appPort, '/dynamic/bundle')  251 |   252 |         while (true) {  at new Spec (../node_modules/jest-jasmine2/build/jasmine/Spec.js:116:22)  at Suite.<anonymous> (integration/basic/test/dynamic.js:249:7)

● Basic Features › Dynamic import › Import mapping › should render support React context

: Timeout - Async callback was not invoked within the 300000ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 300000ms timeout specified by jest.setTimeout.Error:  265 |       })  266 | > 267 |       it('should render support React context', async () => {      |       ^  268 |         const browser = await webdriver(context.appPort, '/dynamic/bundle')  269 |   270 |         while (true) {  at new Spec (../node_modules/jest-jasmine2/build/jasmine/Spec.js:116:22)  at Suite.<anonymous> (integration/basic/test/dynamic.js:267:7)

● Basic Features › Dynamic import › Import mapping › should load new components and render for prop changes

: Timeout - Async callback was not invoked within the 300000ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 300000ms timeout specified by jest.setTimeout.Error:  277 |       })  278 | > 279 |       it('should load new components and render for prop changes', async () => {      |       ^  280 |         const browser = await webdriver(context.appPort, '/dynamic/bundle')  281 |   282 |         await browser  at new Spec (../node_modules/jest-jasmine2/build/jasmine/Spec.js:116:22)  at Suite.<anonymous> (integration/basic/test/dynamic.js:279:7)

● Basic Features › Hot Module Reloading › delete a page and add it back › should load the page properly

NoSuchWindowError: no such window: target window already closedfrom unknown error: web view not found  (Session info: headless chrome=81.0.4044.129)  251 |   252 |         while (true) {> 253 |           const bodyText = await browser.elementByCss('body').text()      |                            ^  254 |           if (  255 |             /Dynamic Bundle/.test(bodyText) &&  256 |             /Hello World 1/.test(bodyText) &&  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:563:13)  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:489:26)      at runMicrotasks (<anonymous>)  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:699:17)  at Object.<anonymous> (integration/basic/test/dynamic.js:253:28)

● Basic Features › Hot Module Reloading › editing a page › should detect the changes and display it

StaleElementReferenceError: stale element reference: element is not attached to the page document  (Session info: headless chrome=81.0.4044.129)  146 |   147 |   const newTabLink = await browser.findElement(By.css('#new'))> 148 |   await newTabLink.click()      |   ^  149 |   150 |   allWindows = await browser.getAllWindowHandles()  151 |   const newWindow = allWindows.find(win => win !== initialWindow)  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:563:13)  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:489:26)      at runMicrotasks (<anonymous>)  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:699:17)  at freshWindow (lib/next-webdriver.js:148:3)  at _default (lib/next-webdriver.js:166:5)  at Object.<anonymous> (integration/basic/test/hmr.js:28:21)

● Basic Features › Hot Module Reloading › editing a page › should detect the changes and display it

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"p"}  (Session info: headless chrome=81.0.4044.129)  62 |         try {  63 |           browser = await webdriver(context.appPort, '/hmr/about')> 64 |           const text = await browser.elementByCss('p').text()     |                        ^  65 |           expect(text).toBe('This is the about page.')  66 |   67 |           const aboutPagePath = join(  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:563:13)  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:489:26)      at runMicrotasks (<anonymous>)  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:699:17)  at Object.<anonymous> (integration/basic/test/hmr.js:64:24)

● Basic Features › Hot Module Reloading › editing a page › should not reload unrelated pages

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"button"}  (Session info: headless chrome=81.0.4044.129)  102 |         try {  103 |           browser = await webdriver(context.appPort, '/hmr/counter')> 104 |           const text = await browser      |                        ^  105 |             .elementByCss('button')  106 |             .click()  107 |             .elementByCss('button')  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:563:13)  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:489:26)      at runMicrotasks (<anonymous>)  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:699:17)  at Object.<anonymous> (integration/basic/test/hmr.js:104:24)

● Basic Features › Hot Module Reloading › editing a page › should update styles correctly

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":".hmr-style-page p"}  (Session info: headless chrome=81.0.4044.129)  150 |         try {  151 |           browser = await webdriver(context.appPort, '/hmr/style')> 152 |           const pTag = await browser.elementByCss('.hmr-style-page p')      |                        ^  153 |           const initialFontSize = await pTag.getComputedCss('font-size')  154 |   155 |           expect(initialFontSize).toBe('100px')  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:563:13)  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:489:26)      at runMicrotasks (<anonymous>)  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:699:17)  at Object.<anonymous> (integration/basic/test/hmr.js:152:24)

● Basic Features › Hot Module Reloading › editing a page › should update styles in a stateful component correctly

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":".hmr-style-page p"}  (Session info: headless chrome=81.0.4044.129)  198 |             '/hmr/style-stateful-component'  199 |           )> 200 |           const pTag = await browser.elementByCss('.hmr-style-page p')      |                        ^  201 |           const initialFontSize = await pTag.getComputedCss('font-size')  202 |   203 |           expect(initialFontSize).toBe('100px')  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:563:13)  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:489:26)      at runMicrotasks (<anonymous>)  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:699:17)  at Object.<anonymous> (integration/basic/test/hmr.js:200:24)

● Basic Features › Hot Module Reloading › editing a page › should update styles in a dynamic component correctly

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#dynamic-component"}  (Session info: headless chrome=81.0.4044.129)  238 |             '/hmr/style-dynamic-component'  239 |           )> 240 |           const div = await browser.elementByCss('#dynamic-component')      |                       ^  241 |           const initialClientClassName = await div.getAttribute('class')  242 |           const initialFontSize = await div.getComputedCss('font-size')  243 |   at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:563:13)  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:489:26)      at runMicrotasks (<anonymous>)  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:699:17)  at Object.<anonymous> (integration/basic/test/hmr.js:240:23)

● Basic Features › Error Recovery › should recover from 404 after a page has been added

ENOENT: no such file or directory, unlink '/home/runner/work/next.js/next.js/test/integration/basic/pages/hmr/new-page.js'  387 |   388 |   delete() {> 389 |     unlinkSync(this.path)      |     ^  390 |   }  391 |   392 |   restore() {  at File.delete (lib/next-test-utils.js:389:5)  at Object.<anonymous> (integration/basic/test/error-recovery.js:42:9)      at runMicrotasks (<anonymous>)

● Basic Features › Error Recovery › should detect syntax errors and recover

TIMED OUT: /This is the about page/  361 |   362 |   if (hardError) {> 363 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content)      |           ^  364 |   }  365 |   return false  366 | }  at check (lib/next-test-utils.js:363:11)  at Object.<anonymous> (integration/basic/test/error-recovery.js:73:11)

● Basic Features › Error Recovery › should show the error on all pages

TIMED OUT: /This is the contact page/  361 |   362 |   if (hardError) {> 363 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content)      |           ^  364 |   }  365 |   return false  366 | }  at check (lib/next-test-utils.js:363:11)  at Object.<anonymous> (integration/basic/test/error-recovery.js:113:11)

● Basic Features › Error Recovery › should detect runtime errors on the module scope

TIMED OUT: /This is the about page/  361 |   362 |   if (hardError) {> 363 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content)      |           ^  364 |   }  365 |   return false  366 | }  at check (lib/next-test-utils.js:363:11)  at Object.<anonymous> (integration/basic/test/error-recovery.js:135:9)

● Basic Features › Error Recovery › should recover from errors in the render function

TIMED OUT: /This is the about page/  361 |   362 |   if (hardError) {> 363 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content)      |           ^  364 |   }  365 |   return false  366 | }  at check (lib/next-test-utils.js:363:11)  at Object.<anonymous> (integration/basic/test/error-recovery.js:176:11)

● Basic Features › Error Recovery › should recover after exporting an invalid page

TIMED OUT: /This is the about page/  361 |   362 |   if (hardError) {> 363 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content)      |           ^  364 |   }  365 |   return false  366 | }  at check (lib/next-test-utils.js:363:11)  at Object.<anonymous> (integration/basic/test/error-recovery.js:221:11)

● Basic Features › Error Recovery › should recover after a bad return from the render function

TIMED OUT: /This is the about page/  361 |   362 |   if (hardError) {> 363 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content)      |           ^  364 |   }  365 |   return false  366 | }  at check (lib/next-test-utils.js:363:11)  at Object.<anonymous> (integration/basic/test/error-recovery.js:273:11)

● Basic Features › Error Recovery › should recover after undefined exported as default

TIMED OUT: /This is the about page/  361 |   362 |   if (hardError) {> 363 |     throw new Error('TIMED OUT: ' + regex + '\n\n' + content)      |           ^  364 |   }  365 |   return false  366 | }  at check (lib/next-test-utils.js:363:11)  at Object.<anonymous> (integration/basic/test/error-recovery.js:319:11)

● Basic Features › Error Recovery › should recover from errors in getInitialProps in client

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#error-in-gip-link"}  (Session info: headless chrome=81.0.4044.129)  338 |       try {  339 |         browser = await webdriver(context.appPort, '/hmr')> 340 |         await browser.elementByCss('#error-in-gip-link').click()      |         ^  341 |   342 |         expect(await hasRedbox(browser)).toBe(true)  343 |         expect(await getRedboxHeader(browser)).toMatchInlineSnapshot(`  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:563:13)  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:489:26)      at runMicrotasks (<anonymous>)  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:699:17)  at Object.<anonymous> (integration/basic/test/error-recovery.js:340:9)

● Basic Features › Error Recovery › should recover after an error reported via SSR

expect(received).toMatchInlineSnapshot(snapshot)Snapshot name: `Basic Features Error Recovery should recover after an error reported via SSR 1`- Snapshot+ Received-  1 of 1 unhandled error- Server Error- - Error: an-expected-error-in-gip- - This error happened while generating the page. Any console logs will be displayed in the terminal window.+ Failed to compile  383 |   384 |         expect(await hasRedbox(browser)).toBe(true)> 385 |         expect(await getRedboxHeader(browser)).toMatchInlineSnapshot(`      |                                                ^  386 |           " 1 of 1 unhandled error  387 |           Server Error  388 |   at Object.<anonymous> (integration/basic/test/error-recovery.js:385:48)

● Basic Features › process.env › should set process.env.NODE_ENV in development

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#node-env"}  (Session info: headless chrome=81.0.4044.129)   6 |     it('should set process.env.NODE_ENV in development', async () => {   7 |       const browser = await webdriver(context.appPort, '/process-env')>  8 |       const nodeEnv = await browser.elementByCss('#node-env').text()     |                       ^   9 |       expect(nodeEnv).toBe('development')  10 |       await browser.close()  11 |     })  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:563:13)  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:489:26)      at runMicrotasks (<anonymous>)  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:699:17)  at Object.<anonymous> (integration/basic/test/process-env.js:8:23)

● Basic Features › With Security Related Issues › should not allow accessing files outside .next/static and .next/server directory

Path /_next/static/../BUILD_ID accessible from the browser  16 |           expect(text).toMatch(/This page could not be found/)  17 |         } catch (err) {> 18 |           throw new Error(`Path ${path} accessible from the browser`)     |                 ^  19 |         }  20 |       }  21 |     })  at Object.<anonymous> (integration/basic/test/security.js:18:17)      at runMicrotasks (<anonymous>)

@ijjk
Copy link
Member

Stats from current PR

Default Server Mode (Increase detected⚠️)
General Overall increase⚠️
vercel/next.js canarykhades/next.js canaryChange
buildDuration12.9s13.1s⚠️ +235ms
nodeModulesSize66.4 MB66.4 MB⚠️ +5.77 kB
Page Load Tests Overall increase ✓
vercel/next.js canarykhades/next.js canaryChange
/ failed reqs00
/ total time (seconds)2.2322.184-0.05
/ avg req/sec1120.021144.59+24.57
/error-in-render failed reqs00
/error-in-render total time (seconds)1.5111.494-0.02
/error-in-render avg req/sec1654.561673.33+18.77
Client Bundles (main, webpack, commons)
vercel/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.63 kB6.63 kB
webpack-HASH.js gzip751 B751 B
19b7e98f51cc..e4a8.js gzip10.7 kB10.7 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57.2 kB57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip751 B751 B
19b7e98f51cc..dule.js gzip7.1 kB7.1 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.7 kB52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.4 kB26.4 kB
Overall change26.4 kB26.4 kB
Client Build Manifests
vercel/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip268 B268 B
_buildManife..dule.js gzip272 B272 B
Overall change540 B540 B
Rendered Page Sizes
vercel/next.js canarykhades/next.js canaryChange
index.html gzip953 B953 B
link.html gzip961 B961 B
withRouter.html gzip945 B945 B
Overall change2.86 kB2.86 kB

Serverless Mode (Increase detected⚠️)
General Overall increase⚠️
vercel/next.js canarykhades/next.js canaryChange
buildDuration14s14.2s⚠️ +217ms
nodeModulesSize66.4 MB66.4 MB⚠️ +5.77 kB
Client Bundles (main, webpack, commons)
vercel/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.63 kB6.63 kB
webpack-HASH.js gzip751 B751 B
19b7e98f51cc..e4a8.js gzip10.7 kB10.7 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57.2 kB57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip751 B751 B
19b7e98f51cc..dule.js gzip7.1 kB7.1 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.7 kB52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.4 kB26.4 kB
Overall change26.4 kB26.4 kB
Client Build Manifests
vercel/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip268 B268 B
_buildManife..dule.js gzip272 B272 B
Overall change540 B540 B
Serverless bundles Overall increase⚠️
vercel/next.js canarykhades/next.js canaryChange
_error.js876 kB879 kB⚠️ +2.83 kB
404.html4.17 kB4.17 kB
hooks.html3.79 kB3.79 kB
index.js877 kB879 kB⚠️ +2.83 kB
link.js916 kB919 kB⚠️ +2.83 kB
routerDirect.js910 kB912 kB⚠️ +2.83 kB
withRouter.js910 kB912 kB⚠️ +2.83 kB
Overall change4.5 MB4.51 MB⚠️ +14.2 kB
Commit:9516e9f

@ijjk
Copy link
Member

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase⚠️
vercel/next.js canarykhades/next.js canaryChange
buildDuration10.9s10.7s-217ms
nodeModulesSize66.4 MB66.4 MB⚠️ +5.77 kB
Page Load Tests Overall decrease⚠️
vercel/next.js canarykhades/next.js canaryChange
/ failed reqs00
/ total time (seconds)1.8571.835-0.02
/ avg req/sec1346.61362.37+15.77
/error-in-render failed reqs00
/error-in-render total time (seconds)1.0971.115⚠️ +0.02
/error-in-render avg req/sec2279.412242.87⚠️ -36.54
Client Bundles (main, webpack, commons)
vercel/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.63 kB6.63 kB
webpack-HASH.js gzip751 B751 B
19b7e98f51cc..e4a8.js gzip10.7 kB10.7 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57.2 kB57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip751 B751 B
19b7e98f51cc..dule.js gzip7.1 kB7.1 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.7 kB52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.4 kB26.4 kB
Overall change26.4 kB26.4 kB
Client Build Manifests
vercel/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip268 B268 B
_buildManife..dule.js gzip272 B272 B
Overall change540 B540 B
Rendered Page Sizes
vercel/next.js canarykhades/next.js canaryChange
index.html gzip953 B953 B
link.html gzip961 B961 B
withRouter.html gzip945 B945 B
Overall change2.86 kB2.86 kB

Serverless Mode (Increase detected⚠️)
General Overall increase⚠️
vercel/next.js canarykhades/next.js canaryChange
buildDuration11.4s11.6s⚠️ +225ms
nodeModulesSize66.4 MB66.4 MB⚠️ +5.77 kB
Client Bundles (main, webpack, commons)
vercel/next.js canarykhades/next.js canaryChange
main-HASH.js gzip6.63 kB6.63 kB
webpack-HASH.js gzip751 B751 B
19b7e98f51cc..e4a8.js gzip10.7 kB10.7 kB
framework.HASH.js gzip39.1 kB39.1 kB
Overall change57.2 kB57.2 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canarykhades/next.js canaryChange
main-HASH.module.js gzip5.72 kB5.72 kB
webpack-HASH..dule.js gzip751 B751 B
19b7e98f51cc..dule.js gzip7.1 kB7.1 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
Overall change52.7 kB52.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canarykhades/next.js canaryChange
polyfills-HASH.js gzip26.4 kB26.4 kB
Overall change26.4 kB26.4 kB
Client Build Manifests
vercel/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip268 B268 B
_buildManife..dule.js gzip272 B272 B
Overall change540 B540 B
Serverless bundles Overall increase⚠️
vercel/next.js canarykhades/next.js canaryChange
_error.js878 kB881 kB⚠️ +2.83 kB
404.html4.17 kB4.17 kB
hooks.html3.79 kB3.79 kB
index.js878 kB881 kB⚠️ +2.83 kB
link.js918 kB920 kB⚠️ +2.83 kB
routerDirect.js911 kB914 kB⚠️ +2.83 kB
withRouter.js911 kB914 kB⚠️ +2.83 kB
Overall change4.5 MB4.52 MB⚠️ +14.2 kB
Commit:884f574

@khades
Copy link
ContributorAuthor

@timneutkens@Timer Review, please

@ijjk
Copy link
Member

Failing test suites

Commit:a866937

test/integration/create-next-app/index.test.js

  • create next app > empty directory
  • create next app > should allow an example named default
Expand output

● create next app › empty directory

expect(received).toBeTruthy()Received: false  66 |         expect(  67 |           fs.existsSync(path.join(cwd, projectName, 'pages/index.js'))> 68 |         ).toBeTruthy()     |           ^  69 |       })  70 |     })  71 |   }  at integration/create-next-app/index.test.js:68:11  at usingTempDir (integration/create-next-app/index.test.js:30:12)  at Object.<anonymous> (integration/create-next-app/index.test.js:58:7)

● create next app › should allow an example named default

expect(received).toBeTruthy()Received: false  233 |       expect(  234 |         fs.existsSync(path.join(cwd, projectName, 'pages/index.js'))> 235 |       ).toBeTruthy()      |         ^  236 |       // check we copied default `.gitignore`  237 |       expect(  238 |         fs.existsSync(path.join(cwd, projectName, '.gitignore'))  at integration/create-next-app/index.test.js:235:9  at usingTempDir (integration/create-next-app/index.test.js:30:12)  at Object.<anonymous> (integration/create-next-app/index.test.js:225:5)

@ijjk
Copy link
Member

ijjk commentedAug 3, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canarykhades/next.js canaryChange
buildDuration12.6s12.9s⚠️ +258ms
nodeModulesSize65.5 MB60.8 MB-4.7 MB
Page Load Tests Overall decrease⚠️
vercel/next.js canarykhades/next.js canaryChange
/ failed reqs00
/ total time (seconds)2.1592.207⚠️ +0.05
/ avg req/sec1158.111132.98⚠️ -25.13
/error-in-render failed reqs00
/error-in-render total time (seconds)1.1991.21⚠️ +0.01
/error-in-render avg req/sec2085.362065.41⚠️ -19.95
Client Bundles (main, webpack, commons)
vercel/next.js canarykhades/next.js canaryChange
677f882d2ed8..39a4.js gzip10.2 kB10.2 kB
framework.HASH.js gzip39.1 kB39.1 kB
main-5b25689..c07a.js gzip6.73 kB6.73 kB
webpack-488d..c0e7.js gzip751 B751 B
Overall change56.8 kB56.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canarykhades/next.js canaryChange
677f882d2ed8..dule.js gzip6.13 kB6.13 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
main-6ac1f4e..dule.js gzip5.81 kB5.81 kB
webpack-4f62..dule.js gzip751 B751 B
Overall change51.8 kB51.8 kB
Legacy Client Bundles (polyfills)
vercel/next.js canarykhades/next.js canaryChange
polyfills-05..1236.js gzip30.8 kB30.8 kB
Overall change30.8 kB30.8 kB
Client Pages
vercel/next.js canarykhades/next.js canaryChange
_app-8f5f611..1f7b.js gzip1.28 kB1.28 kB
_error-a98d9..5cb7.js gzip3.45 kB3.45 kB
hooks-f7f3d0..7465.js gzip887 B887 B
index-08fb3f..c0e9.js gzip227 B227 B
link-6f8445b..99e1.js gzip1.3 kB1.3 kB
routerDirect..8aa1.js gzip284 B284 B
withRouter-f..e777.js gzip284 B284 B
Overall change7.72 kB7.72 kB
Client Pages Modern
vercel/next.js canarykhades/next.js canaryChange
_app-669dbe5..dule.js gzip626 B626 B
_error-d5979..dule.js gzip2.3 kB2.3 kB
hooks-805c40..dule.js gzip387 B387 B
index-6ba5a4..dule.js gzip226 B226 B
link-91516ae..dule.js gzip1.25 kB1.25 kB
routerDirect..dule.js gzip284 B284 B
withRouter-d..dule.js gzip282 B282 B
Overall change5.36 kB5.36 kB
Client Build Manifests
vercel/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip274 B274 B
_buildManife..dule.js gzip282 B282 B
Overall change556 B556 B
Rendered Page Sizes
vercel/next.js canarykhades/next.js canaryChange
index.html gzip946 B946 B
link.html gzip952 B952 B
withRouter.html gzip939 B939 B
Overall change2.84 kB2.84 kB

Serverless Mode (Increase detected⚠️)
General Overall increase⚠️
vercel/next.js canarykhades/next.js canaryChange
buildDuration13.9s15.4s⚠️ +1.4s
nodeModulesSize65.5 MB65.5 MB⚠️ +5.76 kB
Client Bundles (main, webpack, commons)
vercel/next.js canarykhades/next.js canaryChange
677f882d2ed8..39a4.js gzip10.2 kB10.2 kB
framework.HASH.js gzip39.1 kB39.1 kB
main-5b25689..c07a.js gzip6.73 kB6.73 kB
webpack-488d..c0e7.js gzip751 B751 B
Overall change56.8 kB56.8 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canarykhades/next.js canaryChange
677f882d2ed8..dule.js gzip6.13 kB6.13 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
main-6ac1f4e..dule.js gzip5.81 kB5.81 kB
webpack-4f62..dule.js gzip751 B751 B
Overall change51.8 kB51.8 kB
Legacy Client Bundles (polyfills)
vercel/next.js canarykhades/next.js canaryChange
polyfills-05..1236.js gzip30.8 kB30.8 kB
Overall change30.8 kB30.8 kB
Client Pages
vercel/next.js canarykhades/next.js canaryChange
_app-8f5f611..1f7b.js gzip1.28 kB1.28 kB
_error-a98d9..5cb7.js gzip3.45 kB3.45 kB
hooks-f7f3d0..7465.js gzip887 B887 B
index-08fb3f..c0e9.js gzip227 B227 B
link-6f8445b..99e1.js gzip1.3 kB1.3 kB
routerDirect..8aa1.js gzip284 B284 B
withRouter-f..e777.js gzip284 B284 B
Overall change7.72 kB7.72 kB
Client Pages Modern
vercel/next.js canarykhades/next.js canaryChange
_app-669dbe5..dule.js gzip626 B626 B
_error-d5979..dule.js gzip2.3 kB2.3 kB
hooks-805c40..dule.js gzip387 B387 B
index-6ba5a4..dule.js gzip226 B226 B
link-91516ae..dule.js gzip1.25 kB1.25 kB
routerDirect..dule.js gzip284 B284 B
withRouter-d..dule.js gzip282 B282 B
Overall change5.36 kB5.36 kB
Client Build Manifests
vercel/next.js canarykhades/next.js canaryChange
_buildManifest.js gzip274 B274 B
_buildManife..dule.js gzip282 B282 B
Overall change556 B556 B
Serverless bundles Overall increase⚠️
vercel/next.js canarykhades/next.js canaryChange
_error.js1.02 MB1.02 MB⚠️ +1.74 kB
404.html4.18 kB4.18 kB
hooks.html3.82 kB3.82 kB
index.js1.02 MB1.02 MB⚠️ +1.74 kB
link.js1.06 MB1.06 MB⚠️ +1.74 kB
routerDirect.js1.05 MB1.05 MB⚠️ +1.74 kB
withRouter.js1.05 MB1.05 MB⚠️ +1.74 kB
Overall change5.2 MB5.21 MB⚠️ +8.7 kB
Commit:da3dfbf

@ijjk
Copy link
Member

ijjk commentedAug 3, 2020

Stats from current PR

Default Server Mode (Increase detected⚠️)
General
vercel/next.js canaryMehediH/next.js canaryChange
buildDuration12.9s12.5s-434ms
nodeModulesSize65.5 MB65.5 MB
Page Load Tests Overall increase ✓
vercel/next.js canaryMehediH/next.js canaryChange
/ failed reqs00
/ total time (seconds)2.3622.216-0.15
/ avg req/sec1058.211128.24+70.03
/error-in-render failed reqs00
/error-in-render total time (seconds)1.2551.2530
/error-in-render avg req/sec1992.291995.22+2.93
Client Bundles (main, webpack, commons)
vercel/next.js canaryMehediH/next.js canaryChange
677f882d2ed8..adde.js gzip10.2 kB10.2 kB
framework.HASH.js gzip39.1 kB39.1 kB
main-5932771..4350.js gzip6.73 kB6.73 kB
polyfills-4c..dbb6.js gzip30.8 kB30.8 kB
webpack-ccf5..276a.js gzip751 B751 B
Overall change87.6 kB87.6 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canaryMehediH/next.js canaryChange
677f882d2ed8..dule.js gzip6.13 kB6.13 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
main-02cf3f6..dule.js gzip5.81 kB5.81 kB
polyfills-4c..dule.js gzip30.8 kB30.8 kB
webpack-10c7..dule.js gzip751 B751 B
Overall change82.7 kB82.7 kB
Client Pages
vercel/next.js canaryMehediH/next.js canaryChange
_app-874bd8a..0103.js gzip1.28 kB1.28 kB
_error-fa39c..ec40.js gzip3.45 kB3.45 kB
hooks-585f07..95a3.js gzip887 B887 B
index-c7b63f..fc02.js gzip227 B227 B
link-ea5d131..c2be.js gzip1.3 kB1.3 kB
routerDirect..ebc7.js gzip284 B284 B
withRouter-2..db68.js gzip284 B284 B
Overall change7.72 kB7.72 kB
Client Pages Modern
vercel/next.js canaryMehediH/next.js canaryChange
_app-97e743e..dule.js gzip626 B626 B
_error-b4004..dule.js gzip2.3 kB2.3 kB
hooks-696209..dule.js gzip387 B387 B
index-a4dd74..dule.js gzip226 B226 B
link-4448c30..dule.js gzip1.25 kB1.25 kB
routerDirect..dule.js gzip284 B284 B
withRouter-1..dule.js gzip282 B282 B
Overall change5.36 kB5.36 kB
Client Build Manifests
vercel/next.js canaryMehediH/next.js canaryChange
_buildManifest.js gzip273 B273 B
_buildManife..dule.js gzip281 B281 B
Overall change554 B554 B
Rendered Page Sizes
vercel/next.js canaryMehediH/next.js canaryChange
index.html gzip946 B946 B
link.html gzip955 B955 B
withRouter.html gzip940 B940 B
Overall change2.84 kB2.84 kB

Serverless Mode
General
vercel/next.js canaryMehediH/next.js canaryChange
buildDuration13.7s13.8s⚠️ +95ms
nodeModulesSize65.5 MB65.5 MB
Client Bundles (main, webpack, commons)
vercel/next.js canaryMehediH/next.js canaryChange
677f882d2ed8..adde.js gzip10.2 kB10.2 kB
framework.HASH.js gzip39.1 kB39.1 kB
main-5932771..4350.js gzip6.73 kB6.73 kB
polyfills-4c..dbb6.js gzip30.8 kB30.8 kB
webpack-ccf5..276a.js gzip751 B751 B
Overall change87.6 kB87.6 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canaryMehediH/next.js canaryChange
677f882d2ed8..dule.js gzip6.13 kB6.13 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
main-02cf3f6..dule.js gzip5.81 kB5.81 kB
polyfills-4c..dule.js gzip30.8 kB30.8 kB
webpack-10c7..dule.js gzip751 B751 B
Overall change82.7 kB82.7 kB
Client Pages
vercel/next.js canaryMehediH/next.js canaryChange
_app-874bd8a..0103.js gzip1.28 kB1.28 kB
_error-fa39c..ec40.js gzip3.45 kB3.45 kB
hooks-585f07..95a3.js gzip887 B887 B
index-c7b63f..fc02.js gzip227 B227 B
link-ea5d131..c2be.js gzip1.3 kB1.3 kB
routerDirect..ebc7.js gzip284 B284 B
withRouter-2..db68.js gzip284 B284 B
Overall change7.72 kB7.72 kB
Client Pages Modern
vercel/next.js canaryMehediH/next.js canaryChange
_app-97e743e..dule.js gzip626 B626 B
_error-b4004..dule.js gzip2.3 kB2.3 kB
hooks-696209..dule.js gzip387 B387 B
index-a4dd74..dule.js gzip226 B226 B
link-4448c30..dule.js gzip1.25 kB1.25 kB
routerDirect..dule.js gzip284 B284 B
withRouter-1..dule.js gzip282 B282 B
Overall change5.36 kB5.36 kB
Client Build Manifests
vercel/next.js canaryMehediH/next.js canaryChange
_buildManifest.js gzip273 B273 B
_buildManife..dule.js gzip281 B281 B
Overall change554 B554 B
Serverless bundles
vercel/next.js canaryMehediH/next.js canaryChange
_error.js1.02 MB1.02 MB
404.html4.18 kB4.18 kB
hooks.html3.82 kB3.82 kB
index.js1.02 MB1.02 MB
link.js1.06 MB1.06 MB
routerDirect.js1.05 MB1.05 MB
withRouter.js1.05 MB1.05 MB
Overall change5.2 MB5.2 MB
Commit:4077336

@ijjk
Copy link
Member

ijjk commentedAug 3, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General
vercel/next.js canaryMehediH/next.js canaryChange
buildDuration13.4s14s⚠️ +604ms
nodeModulesSize65.5 MB65.5 MB
Page Load Tests Overall decrease⚠️
vercel/next.js canaryMehediH/next.js canaryChange
/ failed reqs00
/ total time (seconds)2.5492.643⚠️ +0.09
/ avg req/sec980.96945.99⚠️ -34.97
/error-in-render failed reqs00
/error-in-render total time (seconds)1.531.612⚠️ +0.08
/error-in-render avg req/sec1633.61550.49⚠️ -83.11
Client Bundles (main, webpack, commons)
vercel/next.js canaryMehediH/next.js canaryChange
677f882d2ed8..adde.js gzip10.2 kB10.2 kB
framework.HASH.js gzip39.1 kB39.1 kB
main-5932771..4350.js gzip6.73 kB6.73 kB
polyfills-4c..dbb6.js gzip30.8 kB30.8 kB
webpack-ccf5..276a.js gzip751 B751 B
Overall change87.6 kB87.6 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canaryMehediH/next.js canaryChange
677f882d2ed8..dule.js gzip6.13 kB6.13 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
main-02cf3f6..dule.js gzip5.81 kB5.81 kB
polyfills-4c..dule.js gzip30.8 kB30.8 kB
webpack-10c7..dule.js gzip751 B751 B
Overall change82.7 kB82.7 kB
Client Pages
vercel/next.js canaryMehediH/next.js canaryChange
_app-874bd8a..0103.js gzip1.28 kB1.28 kB
_error-fa39c..ec40.js gzip3.45 kB3.45 kB
hooks-585f07..95a3.js gzip887 B887 B
index-c7b63f..fc02.js gzip227 B227 B
link-ea5d131..c2be.js gzip1.3 kB1.3 kB
routerDirect..ebc7.js gzip284 B284 B
withRouter-2..db68.js gzip284 B284 B
Overall change7.72 kB7.72 kB
Client Pages Modern
vercel/next.js canaryMehediH/next.js canaryChange
_app-97e743e..dule.js gzip626 B626 B
_error-b4004..dule.js gzip2.3 kB2.3 kB
hooks-696209..dule.js gzip387 B387 B
index-a4dd74..dule.js gzip226 B226 B
link-4448c30..dule.js gzip1.25 kB1.25 kB
routerDirect..dule.js gzip284 B284 B
withRouter-1..dule.js gzip282 B282 B
Overall change5.36 kB5.36 kB
Client Build Manifests
vercel/next.js canaryMehediH/next.js canaryChange
_buildManifest.js gzip273 B273 B
_buildManife..dule.js gzip281 B281 B
Overall change554 B554 B
Rendered Page Sizes
vercel/next.js canaryMehediH/next.js canaryChange
index.html gzip946 B946 B
link.html gzip955 B955 B
withRouter.html gzip940 B940 B
Overall change2.84 kB2.84 kB

Serverless Mode
General
vercel/next.js canaryMehediH/next.js canaryChange
buildDuration15.6s15.7s⚠️ +124ms
nodeModulesSize65.5 MB65.5 MB
Client Bundles (main, webpack, commons)
vercel/next.js canaryMehediH/next.js canaryChange
677f882d2ed8..adde.js gzip10.2 kB10.2 kB
framework.HASH.js gzip39.1 kB39.1 kB
main-5932771..4350.js gzip6.73 kB6.73 kB
polyfills-4c..dbb6.js gzip30.8 kB30.8 kB
webpack-ccf5..276a.js gzip751 B751 B
Overall change87.6 kB87.6 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canaryMehediH/next.js canaryChange
677f882d2ed8..dule.js gzip6.13 kB6.13 kB
framework.HA..dule.js gzip39.1 kB39.1 kB
main-02cf3f6..dule.js gzip5.81 kB5.81 kB
polyfills-4c..dule.js gzip30.8 kB30.8 kB
webpack-10c7..dule.js gzip751 B751 B
Overall change82.7 kB82.7 kB
Client Pages
vercel/next.js canaryMehediH/next.js canaryChange
_app-874bd8a..0103.js gzip1.28 kB1.28 kB
_error-fa39c..ec40.js gzip3.45 kB3.45 kB
hooks-585f07..95a3.js gzip887 B887 B
index-c7b63f..fc02.js gzip227 B227 B
link-ea5d131..c2be.js gzip1.3 kB1.3 kB
routerDirect..ebc7.js gzip284 B284 B
withRouter-2..db68.js gzip284 B284 B
Overall change7.72 kB7.72 kB
Client Pages Modern
vercel/next.js canaryMehediH/next.js canaryChange
_app-97e743e..dule.js gzip626 B626 B
_error-b4004..dule.js gzip2.3 kB2.3 kB
hooks-696209..dule.js gzip387 B387 B
index-a4dd74..dule.js gzip226 B226 B
link-4448c30..dule.js gzip1.25 kB1.25 kB
routerDirect..dule.js gzip284 B284 B
withRouter-1..dule.js gzip282 B282 B
Overall change5.36 kB5.36 kB
Client Build Manifests
vercel/next.js canaryMehediH/next.js canaryChange
_buildManifest.js gzip273 B273 B
_buildManife..dule.js gzip281 B281 B
Overall change554 B554 B
Serverless bundles
vercel/next.js canaryMehediH/next.js canaryChange
_error.js1.02 MB1.02 MB
404.html4.18 kB4.18 kB
hooks.html3.82 kB3.82 kB
index.js1.02 MB1.02 MB
link.js1.06 MB1.06 MB
routerDirect.js1.05 MB1.05 MB
withRouter.js1.05 MB1.05 MB
Overall change5.2 MB5.2 MB
Commit:5c095f4

@kodiakhqkodiakhqbot merged commit1a7f3e5 intovercel:canaryAug 24, 2020
@timneutkens
Copy link
Member

Thanks@khades!

@khades
Copy link
ContributorAuthor

checked it, works as intended, thank you

@adamayres
Copy link

@khades Thanks for the fix, I too was having the issue in#10557 and was excited to try out this fix. I upgraded to the 9.5.3-canary.25 build and verified that when using dynamic components the FOUC no longer appears on first page load, however if I navigate to a subsequent page that contains a dynamically included component, the local styles for that component do not appear to be loaded at all.

Please note that without this fix, the styles for the dynamically loaded components for subsequent page views were loading, however with the FOUC.

@khades
Copy link
ContributorAuthor

@adamayres will look onto it, pretty strange, i didnt broke the mini-css-extract-plugin client style loader. Dont worry, if i can reproduce that with test i will fix that.

@adamayres
Copy link

@khades Thank you for the quick response. I created asample repository to try and recreate the issue but it is not reproducible in my isolated repo. In the repo where I had seen the this issue, I had also run into this issue#10161 ("Cannot read property 'pop' of undefined"). I had added the following "fix" in mynext.config.js to try and resolve it:

if (config.optimization.splitChunks) {  config.optimization.splitChunks.cacheGroups.shared.enforce = true;}

I replaced this with the most recentrecommendation and that seems fix the "pop" issue as well as the CSS not loading for the dynamic components on a subsequent page, however I did see a FOUC on the next page load for an in the page. I will keep debugging on my side and report back. It may have nothing to do with your changes. Thanks for looking!

@khades
Copy link
ContributorAuthor

@adamayres i will still add test cases for such issue, just to be sure

@adamayres
Copy link

@khades I was able to isolate the issue that Icommented about and created a newrepo that has the steps to reproduce. I was able to reproduce the issue by creating two pages that both usenext/dynamic to include the same component. When navigating from one page to the next, the CSS styles for the dynamically included component are lost/removed on the subsequent page.

@khades
Copy link
ContributorAuthor

khades commentedSep 7, 2020
edited
Loading

@khades I was able to isolate the issue that Icommented about and created a newrepo that has the steps to reproduce. I was able to reproduce the issue by creating two pages that both usenext/dynamic to include the same component. When navigating from one page to the next, the CSS styles for the dynamically included component are lost/removed on the subsequent page.

styleSheets.forEach(({ href, text})=>{
it breaks somewhere here, will look into it

Did you tried any getServerProps examples?

Can you make a bug?

@khades
Copy link
ContributorAuthor

@timneutkens@Timer@adamayres there's two solutions

  1. Explose react-loadable-manifest to client-loader so it would properly know that some specific css files should be stored between page transitions. This might fully replace mini-css-extract-plugin way of importing such css files.
  2. Dont unload css files that were requested by dynamic component.

@Timer
Copy link
Member

Could y'all please open these findings in a new issue?

@adamayres
Copy link

I have created the following issue to track this bug:#16950.

Did you tried any getServerProps examples?

I am not sure I understand, but I did not do anything withgetServerProps. In my linkedrepo where I reproduced this bug you can see there is no_app.js or any dynamically loaded content in either of the pages. Please let me know if this does not answer your question.

  1. Explose react-loadable-manifest to client-loader so it would properly know that some specific css files should be stored between page transitions. This might fully replace mini-css-extract-plugin way of importing such css files.
  2. Dont unload css files that were requested by dynamic component.

I would defer to the maintainers of the library to provide guidance on which of these approaches makes the most sense for the framework, however I do see that thereact-loadable-manifest.json created by the build of my application is ~1.3 MBs raw and ~79kb gzipped, which seems like too much overheard to send to the client to solve this problem. Perhaps there is someway to only send the necessary information about the components being used for a given page OR perhaps it is acceptable to leave CSS on a page for the dynamically loaded components.

@vercelvercel locked asresolvedand limited conversation to collaboratorsJan 29, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.

Reviewers

@TimerTimerTimer approved these changes

@ijjkijjkAwaiting requested review from ijjk

@lfadeslfadesAwaiting requested review from lfades

@timneutkenstimneutkensAwaiting requested review from timneutkens

Assignees

@TimerTimer

Labels

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

FOUC with css-modules while using "next/dynamic"

6 participants

@khades@ijjk@sync@timneutkens@adamayres@Timer

[8]ページ先頭

©2009-2025 Movatter.jp