-
Notifications
You must be signed in to change notification settings - Fork 27.2k
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
how to bundle-analyzer with next-compose-plugins #15370
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Added a section in readme with the proper use of the plugin with next-compose-plugins ^2.0.0, otherwise it doesn't work
cargallo
requested review from
ijjk,
lfades,
Timer and
timneutkens
as code owners
July 21, 2020 13:55
cargallo
changed the title
how to bundle-analyzer with next-componse-plugins
how to bundle-analyzer with next-compose-plugins
Jul 21, 2020
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
buildDuration | 11.4s | 11.7s | |
nodeModulesSize | 66.4 MB | 66.4 MB | ✓ |
Page Load Tests Overall increase ✓
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 1.853 | 1.759 | -0.09 |
/ avg req/sec | 1349.46 | 1421.38 | +71.92 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.175 | 1.169 | -0.01 |
/error-in-render avg req/sec | 2128.21 | 2137.86 | +9.65 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..7a20.js gzip | 9.85 kB | 9.85 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-d8a3f1c..06ea.js gzip | 6.72 kB | 6.72 kB | ✓ |
polyfills-05..1236.js gzip | 30.8 kB | 30.8 kB | ✓ |
webpack-488d..c0e7.js gzip | 751 B | 751 B | ✓ |
Overall change | 87.3 kB | 87.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.12 kB | 6.12 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-e63c4e5..dule.js gzip | 5.79 kB | 5.79 kB | ✓ |
polyfills-05..dule.js gzip | 30.8 kB | 30.8 kB | ✓ |
webpack-4f62..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 82.6 kB | 82.6 kB | ✓ |
Client Pages
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-8f5f611..1f7b.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-8e69b..8695.js gzip | 3.41 kB | 3.41 kB | ✓ |
hooks-f7f3d0..7465.js gzip | 887 B | 887 B | ✓ |
index-08fb3f..c0e9.js gzip | 227 B | 227 B | ✓ |
link-ddd176e..5566.js gzip | 1.29 kB | 1.29 kB | ✓ |
routerDirect..8aa1.js gzip | 284 B | 284 B | ✓ |
withRouter-f..e777.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.66 kB | 7.66 kB | ✓ |
Client Pages Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-669dbe5..dule.js gzip | 626 B | 626 B | ✓ |
_error-663e6..dule.js gzip | 2.24 kB | 2.24 kB | ✓ |
hooks-805c40..dule.js gzip | 387 B | 387 B | ✓ |
index-6ba5a4..dule.js gzip | 226 B | 226 B | ✓ |
link-69bc264..dule.js gzip | 1.25 kB | 1.25 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-d..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.29 kB | 5.29 kB | ✓ |
Client Build Manifests
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 275 B | 275 B | ✓ |
_buildManife..dule.js gzip | 281 B | 281 B | ✓ |
Overall change | 556 B | 556 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
index.html gzip | 946 B | 946 B | ✓ |
link.html gzip | 953 B | 953 B | ✓ |
withRouter.html gzip | 938 B | 938 B | ✓ |
Overall change | 2.84 kB | 2.84 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
buildDuration | 13.6s | 13.2s | -374ms |
nodeModulesSize | 66.4 MB | 66.4 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..7a20.js gzip | 9.85 kB | 9.85 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-d8a3f1c..06ea.js gzip | 6.72 kB | 6.72 kB | ✓ |
polyfills-05..1236.js gzip | 30.8 kB | 30.8 kB | ✓ |
webpack-488d..c0e7.js gzip | 751 B | 751 B | ✓ |
Overall change | 87.3 kB | 87.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.12 kB | 6.12 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-e63c4e5..dule.js gzip | 5.79 kB | 5.79 kB | ✓ |
polyfills-05..dule.js gzip | 30.8 kB | 30.8 kB | ✓ |
webpack-4f62..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 82.6 kB | 82.6 kB | ✓ |
Client Pages
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-8f5f611..1f7b.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-8e69b..8695.js gzip | 3.41 kB | 3.41 kB | ✓ |
hooks-f7f3d0..7465.js gzip | 887 B | 887 B | ✓ |
index-08fb3f..c0e9.js gzip | 227 B | 227 B | ✓ |
link-ddd176e..5566.js gzip | 1.29 kB | 1.29 kB | ✓ |
routerDirect..8aa1.js gzip | 284 B | 284 B | ✓ |
withRouter-f..e777.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.66 kB | 7.66 kB | ✓ |
Client Pages Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-669dbe5..dule.js gzip | 626 B | 626 B | ✓ |
_error-663e6..dule.js gzip | 2.24 kB | 2.24 kB | ✓ |
hooks-805c40..dule.js gzip | 387 B | 387 B | ✓ |
index-6ba5a4..dule.js gzip | 226 B | 226 B | ✓ |
link-69bc264..dule.js gzip | 1.25 kB | 1.25 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-d..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.29 kB | 5.29 kB | ✓ |
Client Build Manifests
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 275 B | 275 B | ✓ |
_buildManife..dule.js gzip | 281 B | 281 B | ✓ |
Overall change | 556 B | 556 B | ✓ |
Serverless bundles
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_error.js | 881 kB | 881 kB | ✓ |
404.html | 4.18 kB | 4.18 kB | ✓ |
hooks.html | 3.82 kB | 3.82 kB | ✓ |
index.js | 881 kB | 881 kB | ✓ |
link.js | 923 kB | 923 kB | ✓ |
routerDirect.js | 917 kB | 917 kB | ✓ |
withRouter.js | 917 kB | 917 kB | ✓ |
Overall change | 4.53 MB | 4.53 MB | ✓ |
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
buildDuration | 11.7s | 11.8s | |
nodeModulesSize | 66.4 MB | 66.4 MB | ✓ |
Page Load Tests Overall increase ✓
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 1.966 | 1.903 | -0.06 |
/ avg req/sec | 1271.3 | 1313.42 | +42.12 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.18 | 1.133 | -0.05 |
/error-in-render avg req/sec | 2118.42 | 2205.75 | +87.33 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..7a20.js gzip | 9.85 kB | 9.85 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-d8a3f1c..06ea.js gzip | 6.72 kB | 6.72 kB | ✓ |
polyfills-05..1236.js gzip | 30.8 kB | 30.8 kB | ✓ |
webpack-488d..c0e7.js gzip | 751 B | 751 B | ✓ |
Overall change | 87.3 kB | 87.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.12 kB | 6.12 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-e63c4e5..dule.js gzip | 5.79 kB | 5.79 kB | ✓ |
polyfills-05..dule.js gzip | 30.8 kB | 30.8 kB | ✓ |
webpack-4f62..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 82.6 kB | 82.6 kB | ✓ |
Client Pages
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-8f5f611..1f7b.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-8e69b..8695.js gzip | 3.41 kB | 3.41 kB | ✓ |
hooks-f7f3d0..7465.js gzip | 887 B | 887 B | ✓ |
index-08fb3f..c0e9.js gzip | 227 B | 227 B | ✓ |
link-ddd176e..5566.js gzip | 1.29 kB | 1.29 kB | ✓ |
routerDirect..8aa1.js gzip | 284 B | 284 B | ✓ |
withRouter-f..e777.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.66 kB | 7.66 kB | ✓ |
Client Pages Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-669dbe5..dule.js gzip | 626 B | 626 B | ✓ |
_error-663e6..dule.js gzip | 2.24 kB | 2.24 kB | ✓ |
hooks-805c40..dule.js gzip | 387 B | 387 B | ✓ |
index-6ba5a4..dule.js gzip | 226 B | 226 B | ✓ |
link-69bc264..dule.js gzip | 1.25 kB | 1.25 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-d..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.29 kB | 5.29 kB | ✓ |
Client Build Manifests
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 275 B | 275 B | ✓ |
_buildManife..dule.js gzip | 281 B | 281 B | ✓ |
Overall change | 556 B | 556 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
index.html gzip | 946 B | 946 B | ✓ |
link.html gzip | 953 B | 953 B | ✓ |
withRouter.html gzip | 938 B | 938 B | ✓ |
Overall change | 2.84 kB | 2.84 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
buildDuration | 13.5s | 13.8s | |
nodeModulesSize | 66.4 MB | 66.4 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..7a20.js gzip | 9.85 kB | 9.85 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-d8a3f1c..06ea.js gzip | 6.72 kB | 6.72 kB | ✓ |
polyfills-05..1236.js gzip | 30.8 kB | 30.8 kB | ✓ |
webpack-488d..c0e7.js gzip | 751 B | 751 B | ✓ |
Overall change | 87.3 kB | 87.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.12 kB | 6.12 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-e63c4e5..dule.js gzip | 5.79 kB | 5.79 kB | ✓ |
polyfills-05..dule.js gzip | 30.8 kB | 30.8 kB | ✓ |
webpack-4f62..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 82.6 kB | 82.6 kB | ✓ |
Client Pages
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-8f5f611..1f7b.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-8e69b..8695.js gzip | 3.41 kB | 3.41 kB | ✓ |
hooks-f7f3d0..7465.js gzip | 887 B | 887 B | ✓ |
index-08fb3f..c0e9.js gzip | 227 B | 227 B | ✓ |
link-ddd176e..5566.js gzip | 1.29 kB | 1.29 kB | ✓ |
routerDirect..8aa1.js gzip | 284 B | 284 B | ✓ |
withRouter-f..e777.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.66 kB | 7.66 kB | ✓ |
Client Pages Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-669dbe5..dule.js gzip | 626 B | 626 B | ✓ |
_error-663e6..dule.js gzip | 2.24 kB | 2.24 kB | ✓ |
hooks-805c40..dule.js gzip | 387 B | 387 B | ✓ |
index-6ba5a4..dule.js gzip | 226 B | 226 B | ✓ |
link-69bc264..dule.js gzip | 1.25 kB | 1.25 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-d..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.29 kB | 5.29 kB | ✓ |
Client Build Manifests
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 275 B | 275 B | ✓ |
_buildManife..dule.js gzip | 281 B | 281 B | ✓ |
Overall change | 556 B | 556 B | ✓ |
Serverless bundles
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_error.js | 881 kB | 881 kB | ✓ |
404.html | 4.18 kB | 4.18 kB | ✓ |
hooks.html | 3.82 kB | 3.82 kB | ✓ |
index.js | 881 kB | 881 kB | ✓ |
link.js | 923 kB | 923 kB | ✓ |
routerDirect.js | 917 kB | 917 kB | ✓ |
withRouter.js | 917 kB | 917 kB | ✓ |
Overall change | 4.53 MB | 4.53 MB | ✓ |
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
buildDuration | 12s | 12.3s | |
nodeModulesSize | 66 MB | 66.9 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.158 | 1.958 | -0.2 |
/ avg req/sec | 1158.42 | 1277.02 | +118.6 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.202 | 1.169 | -0.03 |
/error-in-render avg req/sec | 2079.93 | 2138.47 | +58.54 |
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..8895.js gzip | 10.3 kB | 10.2 kB | -105 B |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-da9f477..d581.js gzip | 6.73 kB | 6.71 kB | -18 B |
polyfills-75..1629.js gzip | 31 kB | 30.8 kB | -197 B |
webpack-ccf5..276a.js gzip | 751 B | N/A | N/A |
webpack-10c7..dule.js gzip | N/A | 751 B | N/A |
Overall change | 87.9 kB | 87.6 kB | -320 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.21 kB | 6.08 kB | -125 B |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-ccc9938..dule.js gzip | 5.81 kB | 5.79 kB | -23 B |
polyfills-75..dule.js gzip | 31 kB | 30.8 kB | -197 B |
webpack-10c7..dule.js gzip | 751 B | N/A | N/A |
webpack-ccf5..276a.js gzip | N/A | 751 B | N/A |
Overall change | 82.9 kB | 82.6 kB | -345 B |
Client Pages Overall decrease ✓
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
_app-874bd8a..0103.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-fa39c..ec40.js gzip | 3.45 kB | 3.41 kB | -45 B |
hooks-585f07..95a3.js gzip | 887 B | 887 B | ✓ |
index-c7b63f..fc02.js gzip | 227 B | 227 B | ✓ |
link-f4d2979..e57b.js gzip | 1.29 kB | N/A | N/A |
routerDirect..ebc7.js gzip | 284 B | 284 B | ✓ |
withRouter-2..db68.js gzip | 284 B | 284 B | ✓ |
link-ddd176e..5566.js gzip | N/A | 1.29 kB | N/A |
Overall change | 7.71 kB | 7.66 kB | -49 B |
Client Pages Modern Overall decrease ✓
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
_app-97e743e..dule.js gzip | 626 B | 626 B | ✓ |
_error-b4004..dule.js gzip | 2.3 kB | 2.24 kB | -60 B |
hooks-696209..dule.js gzip | 387 B | 387 B | ✓ |
index-a4dd74..dule.js gzip | 226 B | 226 B | ✓ |
link-653c74f..dule.js gzip | 1.26 kB | N/A | N/A |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-1..dule.js gzip | 282 B | 282 B | ✓ |
link-69bc264..dule.js gzip | N/A | 1.25 kB | N/A |
Overall change | 5.37 kB | 5.29 kB | -74 B |
Client Build Manifests Overall increase ⚠️
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 273 B | 275 B | |
_buildManife..dule.js gzip | 280 B | 281 B | |
Overall change | 553 B | 556 B |
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
index.html gzip | 947 B | 945 B | -2 B |
link.html gzip | 953 B | 954 B | |
withRouter.html gzip | 942 B | 940 B | -2 B |
Overall change | 2.84 kB | 2.84 kB | -3 B |
Diffs
Diff for _buildManifest.js
@@ -1,12 +1,12 @@
self.__BUILD_MANIFEST = {
"/": ["static\u002Fchunks\u002Fpages\u002Findex-283eed3c1520dcc26e8d.js"],
"/_error": [
- "static\u002Fchunks\u002Fpages\u002F_error-deefd9533fb3f2325f40.js"
+ "static\u002Fchunks\u002Fpages\u002F_error-4a37fa8cee3d5cd40293.js"
],
"/hooks": [
"static\u002Fchunks\u002Fpages\u002Fhooks-8001dc76075832ee8949.js"
],
- "/link": ["static\u002Fchunks\u002Fpages\u002Flink-39e004206883f7d406ca.js"],
+ "/link": ["static\u002Fchunks\u002Fpages\u002Flink-47d000d5b33907ab0cd4.js"],
"/routerDirect": [
"static\u002Fchunks\u002Fpages\u002FrouterDirect-2e9bfd441bd88cd3382e.js"
],
Diff for _buildManifest.module.js
@@ -3,13 +3,13 @@ self.__BUILD_MANIFEST = {
"static\u002Fchunks\u002Fpages\u002Findex-dc79232991b9d18c3260.module.js"
],
"/_error": [
- "static\u002Fchunks\u002Fpages\u002F_error-ad76988e8f95d02c0721.module.js"
+ "static\u002Fchunks\u002Fpages\u002F_error-ce975ebbbf8cd0d465c1.module.js"
],
"/hooks": [
"static\u002Fchunks\u002Fpages\u002Fhooks-56fa58a6f0993d7d36d7.module.js"
],
"/link": [
- "static\u002Fchunks\u002Fpages\u002Flink-e9ad83832d32f405f5bb.module.js"
+ "static\u002Fchunks\u002Fpages\u002Flink-3c6dc1a0ec3e820dcde5.module.js"
],
"/routerDirect": [
"static\u002Fchunks\u002Fpages\u002FrouterDirect-368af3dfef3c9cd99dc3.module.js"
Diff for _error-ad769..21.module.js
@@ -188,46 +188,6 @@
/***/ "8Kt/": /***/ function(module, exports, __webpack_require__) {
"use strict";
- var _defineProperty = __webpack_require__("lSNA");
-
- function ownKeys(object, enumerableOnly) {
- var keys = Object.keys(object);
- if (Object.getOwnPropertySymbols) {
- var symbols = Object.getOwnPropertySymbols(object);
- if (enumerableOnly)
- symbols = symbols.filter(function(sym) {
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
- });
- keys.push.apply(keys, symbols);
- }
- return keys;
- }
-
- function _objectSpread(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i] != null ? arguments[i] : {};
- if (i % 2) {
- ownKeys(Object(source), true).forEach(function(key) {
- _defineProperty(target, key, source[key]);
- });
- } else if (Object.getOwnPropertyDescriptors) {
- Object.defineProperties(
- target,
- Object.getOwnPropertyDescriptors(source)
- );
- } else {
- ownKeys(Object(source)).forEach(function(key) {
- Object.defineProperty(
- target,
- key,
- Object.getOwnPropertyDescriptor(source, key)
- );
- });
- }
- }
- return target;
- }
-
exports.__esModule = true;
exports.defaultHead = defaultHead;
exports.default = void 0;
@@ -445,11 +405,6 @@ Also adds support for deduplicated `key` properties
.reverse()
.map((c, i) => {
var key = c.key || i;
-
- if (false) {
- var newProps;
- }
-
return _react.default.cloneElement(c, {
key
});
@@ -600,27 +555,6 @@ Also adds support for deduplicated `key` properties
/***/
},
- /***/ lSNA: /***/ function(module, exports) {
- function _defineProperty(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
-
- return obj;
- }
-
- module.exports = _defineProperty;
-
- /***/
- },
-
/***/ lwAK: /***/ function(module, exports, __webpack_require__) {
"use strict";
Diff for _error-deefd..3f2325f40.js
@@ -277,46 +277,6 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
/***/ "8Kt/": /***/ function(module, exports, __webpack_require__) {
"use strict";
- var _defineProperty = __webpack_require__("lSNA");
-
- function ownKeys(object, enumerableOnly) {
- var keys = Object.keys(object);
- if (Object.getOwnPropertySymbols) {
- var symbols = Object.getOwnPropertySymbols(object);
- if (enumerableOnly)
- symbols = symbols.filter(function(sym) {
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
- });
- keys.push.apply(keys, symbols);
- }
- return keys;
- }
-
- function _objectSpread(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i] != null ? arguments[i] : {};
- if (i % 2) {
- ownKeys(Object(source), true).forEach(function(key) {
- _defineProperty(target, key, source[key]);
- });
- } else if (Object.getOwnPropertyDescriptors) {
- Object.defineProperties(
- target,
- Object.getOwnPropertyDescriptors(source)
- );
- } else {
- ownKeys(Object(source)).forEach(function(key) {
- Object.defineProperty(
- target,
- key,
- Object.getOwnPropertyDescriptor(source, key)
- );
- });
- }
- }
- return target;
- }
-
exports.__esModule = true;
exports.defaultHead = defaultHead;
exports["default"] = void 0;
@@ -534,11 +494,6 @@ Also adds support for deduplicated `key` properties
.reverse()
.map(function(c, i) {
var key = c.key || i;
-
- if (false) {
- var newProps;
- }
-
return _react["default"].cloneElement(c, {
key: key
});
@@ -974,27 +929,6 @@ Also adds support for deduplicated `key` properties
/***/
},
- /***/ lSNA: /***/ function(module, exports) {
- function _defineProperty(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
-
- return obj;
- }
-
- module.exports = _defineProperty;
-
- /***/
- },
-
/***/ lwAK: /***/ function(module, exports, __webpack_require__) {
"use strict";
Diff for link-39e0042..3f7d406ca.js
@@ -76,11 +76,20 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
- var _router = __webpack_require__("elyg");
-
var _utils = __webpack_require__("g/15");
- var _router2 = __webpack_require__("nOHt");
+ var _router = __webpack_require__("nOHt");
+
+ var _router2 = __webpack_require__("elyg");
+ /**
+ * Detects whether a given url is from the same origin as the current page (browser only).
+ */
+
+ function isLocal(url) {
+ var locationOrigin = (0, _utils.getLocationOrigin)();
+ var resolved = new URL(url, locationOrigin);
+ return resolved.origin === locationOrigin;
+ }
var cachedObserver;
var listeners = new Map();
@@ -141,8 +150,7 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
function prefetch(router, href, as, options) {
if (false) {
- }
- if (!(0, _router.isLocalURL)(href)) return; // Prefetch the JSON page if asked (only in the client)
+ } // Prefetch the JSON page if asked (only in the client)
// We need to handle a prefetch error here since we may be
// loading with priority which can reject but we don't
// want to force navigation since this is only a prefetch
@@ -155,28 +163,28 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
prefetched[href + "%" + as] = true;
}
- function isNewTabRequest(event) {
- var target = event.currentTarget.target;
- return (
- (target && target !== "_self") ||
- event.metaKey ||
- event.ctrlKey ||
- event.shiftKey ||
- (event.nativeEvent && event.nativeEvent.which === 2)
- );
- }
-
function linkClicked(e, router, href, as, replace, shallow, scroll) {
- var nodeName = e.currentTarget.nodeName;
+ var _e$currentTarget = e.currentTarget,
+ nodeName = _e$currentTarget.nodeName,
+ target = _e$currentTarget.target;
if (
nodeName === "A" &&
- (isNewTabRequest(e) || !(0, _router.isLocalURL)(href))
+ ((target && target !== "_self") ||
+ e.metaKey ||
+ e.ctrlKey ||
+ e.shiftKey ||
+ (e.nativeEvent && e.nativeEvent.which === 2))
) {
// ignore click for new tab / new window behavior
return;
}
+ if (!isLocal(href)) {
+ // ignore click if it's outside our scope (e.g. https://google.com)
+ return;
+ }
+
e.preventDefault(); // avoid scroll for urls with anchor refs
if (scroll == null) {
@@ -207,33 +215,29 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
childElm = _react$default$useSta2[0],
setChildElm = _react$default$useSta2[1];
- var router = (0, _router2.useRouter)();
- var pathname = (router && router.pathname) || "/";
+ var router = (0, _router.useRouter)();
var _react$default$useMem = _react["default"].useMemo(
function() {
- var resolvedHref = (0, _router.resolveHref)(pathname, props.href);
+ var resolvedHref = (0, _router2.resolveHref)(
+ router.pathname,
+ props.href
+ );
return {
href: resolvedHref,
as: props.as
- ? (0, _router.resolveHref)(pathname, props.as)
+ ? (0, _router2.resolveHref)(router.pathname, props.as)
: resolvedHref
};
},
- [pathname, props.href, props.as]
+ [router.pathname, props.href, props.as]
),
href = _react$default$useMem.href,
as = _react$default$useMem.as;
_react["default"].useEffect(
function() {
- if (
- p &&
- IntersectionObserver &&
- childElm &&
- childElm.tagName &&
- (0, _router.isLocalURL)(href)
- ) {
+ if (p && IntersectionObserver && childElm && childElm.tagName) {
// Join on an invalid URI character
var isPrefetched = prefetched[href + "%" + as];
@@ -286,8 +290,6 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
if (p) {
childProps.onMouseEnter = function(e) {
- if (!(0, _router.isLocalURL)(href)) return;
-
if (child.props && typeof child.props.onMouseEnter === "function") {
child.props.onMouseEnter(e);
}
@@ -303,7 +305,12 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
props.passHref ||
(child.type === "a" && !("href" in child.props))
) {
- childProps.href = (0, _router.addBasePath)(as);
+ childProps.href = (0, _router2.addBasePath)(as);
+ } // Add the ending slash to the paths. So, we can serve the
+ // "<page>/index.html" directly.
+
+ if (false) {
+ var rewriteUrlForNextExport;
}
return _react["default"].cloneElement(child, childProps);
Diff for link-e9ad838..bb.module.js
@@ -72,11 +72,20 @@
var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
- var _router = __webpack_require__("elyg");
-
var _utils = __webpack_require__("g/15");
- var _router2 = __webpack_require__("nOHt");
+ var _router = __webpack_require__("nOHt");
+
+ var _router2 = __webpack_require__("elyg");
+ /**
+ * Detects whether a given url is from the same origin as the current page (browser only).
+ */
+
+ function isLocal(url) {
+ var locationOrigin = (0, _utils.getLocationOrigin)();
+ var resolved = new URL(url, locationOrigin);
+ return resolved.origin === locationOrigin;
+ }
var cachedObserver;
var listeners = new Map();
@@ -137,8 +146,7 @@
function prefetch(router, href, as, options) {
if (false) {
- }
- if (!(0, _router.isLocalURL)(href)) return; // Prefetch the JSON page if asked (only in the client)
+ } // Prefetch the JSON page if asked (only in the client)
// We need to handle a prefetch error here since we may be
// loading with priority which can reject but we don't
// want to force navigation since this is only a prefetch
@@ -151,28 +159,26 @@
prefetched[href + "%" + as] = true;
}
- function isNewTabRequest(event) {
- var { target } = event.currentTarget;
- return (
- (target && target !== "_self") ||
- event.metaKey ||
- event.ctrlKey ||
- event.shiftKey ||
- (event.nativeEvent && event.nativeEvent.which === 2)
- );
- }
-
function linkClicked(e, router, href, as, replace, shallow, scroll) {
- var { nodeName } = e.currentTarget;
+ var { nodeName, target } = e.currentTarget;
if (
nodeName === "A" &&
- (isNewTabRequest(e) || !(0, _router.isLocalURL)(href))
+ ((target && target !== "_self") ||
+ e.metaKey ||
+ e.ctrlKey ||
+ e.shiftKey ||
+ (e.nativeEvent && e.nativeEvent.which === 2))
) {
// ignore click for new tab / new window behavior
return;
}
+ if (!isLocal(href)) {
+ // ignore click if it's outside our scope (e.g. https://google.com)
+ return;
+ }
+
e.preventDefault(); // avoid scroll for urls with anchor refs
if (scroll == null) {
@@ -200,27 +206,23 @@
var [childElm, setChildElm] = _react.default.useState();
- var router = (0, _router2.useRouter)();
- var pathname = (router && router.pathname) || "/";
+ var router = (0, _router.useRouter)();
var { href, as } = _react.default.useMemo(() => {
- var resolvedHref = (0, _router.resolveHref)(pathname, props.href);
+ var resolvedHref = (0, _router2.resolveHref)(
+ router.pathname,
+ props.href
+ );
return {
href: resolvedHref,
as: props.as
- ? (0, _router.resolveHref)(pathname, props.as)
+ ? (0, _router2.resolveHref)(router.pathname, props.as)
: resolvedHref
};
- }, [pathname, props.href, props.as]);
+ }, [router.pathname, props.href, props.as]);
_react.default.useEffect(() => {
- if (
- p &&
- IntersectionObserver &&
- childElm &&
- childElm.tagName &&
- (0, _router.isLocalURL)(href)
- ) {
+ if (p && IntersectionObserver && childElm && childElm.tagName) {
// Join on an invalid URI character
var isPrefetched = prefetched[href + "%" + as];
@@ -268,8 +270,6 @@
if (p) {
childProps.onMouseEnter = e => {
- if (!(0, _router.isLocalURL)(href)) return;
-
if (child.props && typeof child.props.onMouseEnter === "function") {
child.props.onMouseEnter(e);
}
@@ -285,7 +285,12 @@
props.passHref ||
(child.type === "a" && !("href" in child.props))
) {
- childProps.href = (0, _router.addBasePath)(as);
+ childProps.href = (0, _router2.addBasePath)(as);
+ } // Add the ending slash to the paths. So, we can serve the
+ // "<page>/index.html" directly.
+
+ if (false) {
+ var rewriteUrlForNextExport;
}
return _react.default.cloneElement(child, childProps);
Diff for 677f882d2ed8..25.module.js
@@ -536,10 +536,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
"use strict";
exports.__esModule = true;
- exports.hasBasePath = hasBasePath;
exports.addBasePath = addBasePath;
exports.delBasePath = delBasePath;
- exports.isLocalURL = isLocalURL;
exports.resolveHref = resolveHref;
exports.default = void 0;
@@ -577,13 +575,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
});
}
- function hasBasePath(path) {
- return path === basePath || path.startsWith(basePath + "/");
- }
-
function addBasePath(path) {
- // we only add the basepath on relative urls
- return basePath && path.startsWith("/")
+ return basePath
? path === "/"
? (0, _normalizeTrailingSlash.normalizePathTrailingSlash)(basePath)
: basePath + path
@@ -593,24 +586,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
function delBasePath(path) {
return path.slice(basePath.length) || "/";
}
- /**
- * Detects whether a given url is routable by the Next.js router (browser only).
- */
-
- function isLocalURL(url) {
- if (url.startsWith("/")) return true;
-
- try {
- // absolute urls can be local if they are on the same origin
- var locationOrigin = (0, _utils.getLocationOrigin)();
- var resolved = new URL(url, locationOrigin);
- return (
- resolved.origin === locationOrigin && hasBasePath(resolved.pathname)
- );
- } catch (_) {
- return false;
- }
- }
/**
* Resolves a given hyperlink with a certain router state (basePath not included).
* Preserves absolute urls.
@@ -623,20 +598,13 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
typeof href === "string"
? href
: (0, _utils.formatWithValidation)(href);
+ var finalUrl = new URL(urlAsString, base);
+ finalUrl.pathname = (0,
+ _normalizeTrailingSlash.normalizePathTrailingSlash)(finalUrl.pathname); // if the origin didn't change, it means we received a relative href
- try {
- var finalUrl = new URL(urlAsString, base);
- finalUrl.pathname = (0,
- _normalizeTrailingSlash.normalizePathTrailingSlash)(
- finalUrl.pathname
- ); // if the origin didn't change, it means we received a relative href
-
- return finalUrl.origin === base.origin
- ? finalUrl.href.slice(finalUrl.origin.length)
- : finalUrl.href;
- } catch (_) {
- return urlAsString;
- }
+ return finalUrl.origin === base.origin
+ ? finalUrl.href.slice(finalUrl.origin.length)
+ : finalUrl.href;
}
function prepareUrlAs(router, url, as) {
@@ -735,9 +703,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
this._inFlightRoute = void 0;
this.onPopState = e => {
- var state = e.state;
-
- if (!state) {
+ if (!e.state) {
// We get state as undefined for two reasons.
// 1. With older safari (< 8) and older chrome (< 34)
// 2. When the URL changed with #
@@ -759,11 +725,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
return;
}
- if (!state.__N) {
- return;
- }
-
- var { url, as, options } = state;
+ var { url, as, options } = e.state;
var { pathname } = (0, _parseRelativeUrl.parseRelativeUrl)(url); // Make sure we don't re-render on initial load,
// can be caused by navigating back from an external site
@@ -776,10 +738,13 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
} // If the downstream application returns falsy, return.
// They will then be responsible for handling the event.
- if (this._bps && !this._bps(state)) {
+ if (this._bps && !this._bps(e.state)) {
return;
}
+ if (false) {
+ }
+
this.change("replaceState", url, as, options);
}; // represents the current component key
@@ -849,6 +814,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
var debouncedScrollSave, scrollDebounceTimeout;
}
}
+ } // @deprecated backwards compatibility even though it's a private method.
+
+ static _rewriteUrlForNextExport(url) {
+ if (false) {
+ var rewriteUrlForNextExport;
+ } else {
+ return url;
+ }
}
update(route, mod) {
@@ -926,24 +899,24 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
}
async change(method, url, as, options) {
- if (!isLocalURL(url)) {
- window.location.href = url;
- return false;
- }
-
if (!options._h) {
this.isSsr = false;
} // marking route changes as a navigation start entry
if (_utils.ST) {
performance.mark("routeChange");
+ } // Add the ending slash to the paths. So, we can serve the
+ // "<page>/index.html" directly for the SSR page.
+
+ if (false) {
+ var rewriteUrlForNextExport;
}
if (this._inFlightRoute) {
this.abortComponentLoad(this._inFlightRoute);
}
- var cleanedAs = hasBasePath(as) ? delBasePath(as) : as;
+ var cleanedAs = delBasePath(as);
this._inFlightRoute = as; // If the url change is only related to a hash change
// We should not proceed. We should only change the state.
// WARNING: `_h` is an internal option for handing Next.js client-side
@@ -1073,8 +1046,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
{
url,
as,
- options,
- __N: true
+ options
}, // Most browsers currently ignores this parameter, although they may use it in the future.
// Passing the empty string here should be safe against future changes to the method.
// https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState
@@ -1570,35 +1542,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
exports.__esModule = true;
exports.parseRelativeUrl = parseRelativeUrl;
-
- var _utils = __webpack_require__("g/15");
-
- var DUMMY_BASE = new URL(
- false ? undefined : (0, _utils.getLocationOrigin)()
- );
+ var DUMMY_BASE = new URL("http://n");
/**
* Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative
* (e.g. `./hello`) then at least base must be.
- * Absolute urls are rejected with one exception, in the browser, absolute urls that are on
- * the current origin will be parsed as relative
+ * Absolute urls are rejected.
*/
function parseRelativeUrl(url, base) {
var resolvedBase = base ? new URL(base, DUMMY_BASE) : DUMMY_BASE;
- var {
- pathname,
- searchParams,
- search,
- hash,
- href,
- origin,
- protocol
- } = new URL(url, resolvedBase);
+ var { pathname, searchParams, search, hash, href, origin } = new URL(
+ url,
+ resolvedBase
+ );
- if (
- origin !== DUMMY_BASE.origin ||
- (protocol !== "http:" && protocol !== "https:")
- ) {
+ if (origin !== DUMMY_BASE.origin) {
throw new Error("invariant: invalid relative URL");
}
Diff for 677f882d2ed8..c54397d07.js
Diff too large to display
Diff for main-badaab3..727b6039e.js
@@ -294,7 +294,7 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
document.getElementById("__NEXT_DATA__").textContent
);
window.__NEXT_DATA__ = data;
- var version = "9.5.2-canary.8";
+ var version = "9.5.0";
exports.version = version;
var hydrateProps = data.props,
hydrateErr = data.err,
@@ -317,7 +317,14 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
});
var asPath = (0, _utils.getURL)(); // make sure not to attempt stripping basePath for 404s
- if ((0, _router2.hasBasePath)(asPath)) {
+ if (
+ page !== "/404" &&
+ !(
+ page === "/_error" &&
+ hydrateProps &&
+ hydrateProps.pageProps.statusCode === "404"
+ )
+ ) {
asPath = (0, _router2.delBasePath)(asPath);
}
@@ -1495,8 +1502,6 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
__webpack_require__("Lab5")
);
- var _router = __webpack_require__("elyg");
-
function hasRel(rel, link) {
try {
link = document.createElement("link");
@@ -1517,12 +1522,6 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
: // IE 11, Edge 12+, nearly all evergreen
"prefetch";
var hasNoModule = "noModule" in document.createElement("script");
-
- var requestIdleCallback =
- window.requestIdleCallback ||
- function(cb) {
- return setTimeout(cb, 1);
- };
/** @param {string} route */
function normalizeRoute(route) {
@@ -1646,12 +1645,11 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
path,
".json"
);
- return (0, _router.addBasePath)(
- "/_next/data/"
- .concat(_this2.buildId)
- .concat(dataRoute)
- .concat(ssg ? "" : search)
- );
+ return ""
+ .concat(_this2.assetPrefix, "/_next/data/")
+ .concat(_this2.buildId)
+ .concat(dataRoute)
+ .concat(ssg ? "" : search || "");
};
var isDynamic = (0, _isDynamic.isDynamicRoute)(route),
@@ -1726,7 +1724,7 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
var route = normalizeRoute(hrefPathname);
return this.promisedSsgManifest.then(function(s, _dataHref) {
- requestIdleCallback(function() {
+ return (
// Check if the route requires a data file
s.has(route) && // Try to generate data href, noop when falsy
(_dataHref = _this3.getDataHref(href, asPath, true)) && // noop when data has already been prefetched (dedupe)
@@ -1735,8 +1733,8 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
.concat(relPrefetch, '"][href^="')
.concat(_dataHref, '"]')
) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
- appendLink(_dataHref, relPrefetch, "fetch");
- });
+ appendLink(_dataHref, relPrefetch, "fetch")
+ );
});
}
},
Diff for main-d0f2719..fc.module.js
@@ -212,7 +212,7 @@
document.getElementById("__NEXT_DATA__").textContent
);
window.__NEXT_DATA__ = data;
- var version = "9.5.2-canary.8";
+ var version = "9.5.0";
exports.version = version;
var {
props: hydrateProps,
@@ -237,7 +237,14 @@
});
var asPath = (0, _utils.getURL)(); // make sure not to attempt stripping basePath for 404s
- if ((0, _router2.hasBasePath)(asPath)) {
+ if (
+ page !== "/404" &&
+ !(
+ page === "/_error" &&
+ hydrateProps &&
+ hydrateProps.pageProps.statusCode === "404"
+ )
+ ) {
asPath = (0, _router2.delBasePath)(asPath);
}
@@ -1134,8 +1141,6 @@
__webpack_require__("Lab5")
);
- var _router = __webpack_require__("elyg");
-
function hasRel(rel, link) {
try {
link = document.createElement("link");
@@ -1156,12 +1161,6 @@
: // IE 11, Edge 12+, nearly all evergreen
"prefetch";
var hasNoModule = "noModule" in document.createElement("script");
-
- var requestIdleCallback =
- window.requestIdleCallback ||
- function(cb) {
- return setTimeout(cb, 1);
- };
/** @param {string} route */
function normalizeRoute(route) {
@@ -1264,12 +1263,11 @@
path,
".json"
);
- return (0, _router.addBasePath)(
- "/_next/data/"
- .concat(this.buildId)
- .concat(dataRoute)
- .concat(ssg ? "" : search)
- );
+ return ""
+ .concat(this.assetPrefix, "/_next/data/")
+ .concat(this.buildId)
+ .concat(dataRoute)
+ .concat(ssg ? "" : search || "");
};
var isDynamic = (0, _isDynamic.isDynamicRoute)(route),
@@ -1332,9 +1330,11 @@
var { pathname: hrefPathname } = (0,
_parseRelativeUrl.parseRelativeUrl)(href);
var route = normalizeRoute(hrefPathname);
- return this.promisedSsgManifest.then((s, _dataHref) => {
- requestIdleCallback(() => {
- // Check if the route requires a data file
+ return this.promisedSsgManifest.then(
+ (
+ s,
+ _dataHref // Check if the route requires a data file
+ ) =>
s.has(route) && // Try to generate data href, noop when falsy
(_dataHref = this.getDataHref(href, asPath, true)) && // noop when data has already been prefetched (dedupe)
!document.querySelector(
@@ -1342,9 +1342,8 @@
.concat(relPrefetch, '"][href^="')
.concat(_dataHref, '"]')
) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
- appendLink(_dataHref, relPrefetch, "fetch");
- });
- });
+ appendLink(_dataHref, relPrefetch, "fetch")
+ );
}
loadPage(route) {
Diff for polyfills-f7..972ef83e9.js
Diff too large to display
Diff for polyfills-f7..e9.module.js
Diff too large to display
Diff for index.html
@@ -6,7 +6,7 @@
<meta name="next-head-count" content="2" />
<link
rel="preload"
- href="/_next/static/chunks/main-d0f2719cffdbb7cf0efc.module.js"
+ href="/_next/static/chunks/main-6b940b53117a1440949a.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4411412e8e5469704f25.module.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3e25cf5b73a50398fe66.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -78,16 +78,16 @@
<script
crossorigin="anonymous"
nomodule=""
- src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+ src="/_next/static/chunks/polyfills-cdbbd579644400b29b58.js"
></script>
<script
- src="/_next/static/chunks/main-badaab334df727b6039e.js"
+ src="/_next/static/chunks/main-3788e5ef2307f57176d6.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/main-d0f2719cffdbb7cf0efc.module.js"
+ src="/_next/static/chunks/main-6b940b53117a1440949a.module.js"
async=""
crossorigin="anonymous"
type="module"
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5b321416a5cc54397d07.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b6fbb309365dd94745b0.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4411412e8e5469704f25.module.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3e25cf5b73a50398fe66.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for link.html
@@ -6,7 +6,7 @@
<meta name="next-head-count" content="2" />
<link
rel="preload"
- href="/_next/static/chunks/main-d0f2719cffdbb7cf0efc.module.js"
+ href="/_next/static/chunks/main-6b940b53117a1440949a.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4411412e8e5469704f25.module.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3e25cf5b73a50398fe66.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -36,7 +36,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/pages/link-e9ad83832d32f405f5bb.module.js"
+ href="/_next/static/chunks/pages/link-3c6dc1a0ec3e820dcde5.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -83,16 +83,16 @@
<script
crossorigin="anonymous"
nomodule=""
- src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+ src="/_next/static/chunks/polyfills-cdbbd579644400b29b58.js"
></script>
<script
- src="/_next/static/chunks/main-badaab334df727b6039e.js"
+ src="/_next/static/chunks/main-3788e5ef2307f57176d6.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/main-d0f2719cffdbb7cf0efc.module.js"
+ src="/_next/static/chunks/main-6b940b53117a1440949a.module.js"
async=""
crossorigin="anonymous"
type="module"
@@ -122,13 +122,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5b321416a5cc54397d07.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b6fbb309365dd94745b0.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4411412e8e5469704f25.module.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3e25cf5b73a50398fe66.module.js"
async=""
crossorigin="anonymous"
type="module"
@@ -146,13 +146,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/pages/link-39e004206883f7d406ca.js"
+ src="/_next/static/chunks/pages/link-47d000d5b33907ab0cd4.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/pages/link-e9ad83832d32f405f5bb.module.js"
+ src="/_next/static/chunks/pages/link-3c6dc1a0ec3e820dcde5.module.js"
async=""
crossorigin="anonymous"
type="module"
Diff for withRouter.html
@@ -6,7 +6,7 @@
<meta name="next-head-count" content="2" />
<link
rel="preload"
- href="/_next/static/chunks/main-d0f2719cffdbb7cf0efc.module.js"
+ href="/_next/static/chunks/main-6b940b53117a1440949a.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -24,7 +24,7 @@
/>
<link
rel="preload"
- href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4411412e8e5469704f25.module.js"
+ href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3e25cf5b73a50398fe66.module.js"
as="script"
crossorigin="anonymous"
/>
@@ -78,16 +78,16 @@
<script
crossorigin="anonymous"
nomodule=""
- src="/_next/static/chunks/polyfills-f73ba3fc145972ef83e9.js"
+ src="/_next/static/chunks/polyfills-cdbbd579644400b29b58.js"
></script>
<script
- src="/_next/static/chunks/main-badaab334df727b6039e.js"
+ src="/_next/static/chunks/main-3788e5ef2307f57176d6.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/main-d0f2719cffdbb7cf0efc.module.js"
+ src="/_next/static/chunks/main-6b940b53117a1440949a.module.js"
async=""
crossorigin="anonymous"
type="module"
@@ -117,13 +117,13 @@
type="module"
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5b321416a5cc54397d07.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.b6fbb309365dd94745b0.js"
async=""
crossorigin="anonymous"
nomodule=""
></script>
<script
- src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4411412e8e5469704f25.module.js"
+ src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.3e25cf5b73a50398fe66.module.js"
async=""
crossorigin="anonymous"
type="module"
Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
buildDuration | 13.5s | 13.3s | -266ms |
nodeModulesSize | 66 MB | 66.9 MB |
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..8895.js gzip | 10.3 kB | N/A | N/A |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-da9f477..d581.js gzip | 6.73 kB | N/A | N/A |
polyfills-75..1629.js gzip | 31 kB | N/A | N/A |
webpack-ccf5..276a.js gzip | 751 B | N/A | N/A |
677f882d2ed8..7778.js gzip | N/A | 10.2 kB | N/A |
main-af9a1a4..87fe.js gzip | N/A | 6.71 kB | N/A |
polyfills-05..1236.js gzip | N/A | 30.8 kB | N/A |
webpack-488d..c0e7.js gzip | N/A | 751 B | N/A |
Overall change | 87.9 kB | 87.6 kB | -320 B |
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.21 kB | N/A | N/A |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-ccc9938..dule.js gzip | 5.81 kB | N/A | N/A |
polyfills-75..dule.js gzip | 31 kB | N/A | N/A |
webpack-10c7..dule.js gzip | 751 B | N/A | N/A |
677f882d2ed8..dule.js gzip | N/A | 6.08 kB | N/A |
main-69d5e5f..dule.js gzip | N/A | 5.79 kB | N/A |
polyfills-05..dule.js gzip | N/A | 30.8 kB | N/A |
webpack-4f62..dule.js gzip | N/A | 751 B | N/A |
Overall change | 82.9 kB | 82.6 kB | -345 B |
Client Pages Overall decrease ✓
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
_app-874bd8a..0103.js gzip | 1.28 kB | N/A | N/A |
_error-fa39c..ec40.js gzip | 3.45 kB | N/A | N/A |
hooks-585f07..95a3.js gzip | 887 B | N/A | N/A |
index-c7b63f..fc02.js gzip | 227 B | N/A | N/A |
link-f4d2979..e57b.js gzip | 1.29 kB | N/A | N/A |
routerDirect..ebc7.js gzip | 284 B | N/A | N/A |
withRouter-2..db68.js gzip | 284 B | N/A | N/A |
_app-8f5f611..1f7b.js gzip | N/A | 1.28 kB | N/A |
_error-8e69b..8695.js gzip | N/A | 3.41 kB | N/A |
hooks-f7f3d0..7465.js gzip | N/A | 887 B | N/A |
index-08fb3f..c0e9.js gzip | N/A | 227 B | N/A |
link-ddd176e..5566.js gzip | N/A | 1.29 kB | N/A |
routerDirect..8aa1.js gzip | N/A | 284 B | N/A |
withRouter-f..e777.js gzip | N/A | 284 B | N/A |
Overall change | 7.71 kB | 7.66 kB | -49 B |
Client Pages Modern Overall decrease ✓
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
_app-97e743e..dule.js gzip | 626 B | N/A | N/A |
_error-b4004..dule.js gzip | 2.3 kB | N/A | N/A |
hooks-696209..dule.js gzip | 387 B | N/A | N/A |
index-a4dd74..dule.js gzip | 226 B | N/A | N/A |
link-653c74f..dule.js gzip | 1.26 kB | N/A | N/A |
routerDirect..dule.js gzip | 284 B | N/A | N/A |
withRouter-1..dule.js gzip | 282 B | N/A | N/A |
_app-669dbe5..dule.js gzip | N/A | 626 B | N/A |
_error-663e6..dule.js gzip | N/A | 2.24 kB | N/A |
hooks-805c40..dule.js gzip | N/A | 387 B | N/A |
index-6ba5a4..dule.js gzip | N/A | 226 B | N/A |
link-69bc264..dule.js gzip | N/A | 1.25 kB | N/A |
routerDirect..dule.js gzip | N/A | 284 B | N/A |
withRouter-d..dule.js gzip | N/A | 282 B | N/A |
Overall change | 5.37 kB | 5.29 kB | -74 B |
Client Build Manifests Overall increase ⚠️
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 273 B | 275 B | |
_buildManife..dule.js gzip | 280 B | 281 B | |
Overall change | 553 B | 556 B |
Serverless bundles Overall decrease ✓
vercel/next.js canary | tm1000/next.js patch-1 | Change | |
---|---|---|---|
_error.js | 1.02 MB | 881 kB | -138 kB |
404.html | 4.18 kB | 4.18 kB | ✓ |
hooks.html | 3.82 kB | 3.82 kB | ✓ |
index.js | 1.02 MB | 881 kB | -138 kB |
link.js | 1.06 MB | 922 kB | -139 kB |
routerDirect.js | 1.05 MB | 916 kB | -139 kB |
withRouter.js | 1.05 MB | 916 kB | -139 kB |
Overall change | 5.22 MB | 4.52 MB | -693 kB |
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
buildDuration | 13.9s | 13.8s | -140ms |
nodeModulesSize | 66 MB | 66 MB | -14 B |
Page Load Tests Overall increase ✓
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.647 | 2.468 | -0.18 |
/ avg req/sec | 944.41 | 1013.02 | +68.61 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.525 | 1.558 | |
/error-in-render avg req/sec | 1639.16 | 1604.72 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..8895.js gzip | 10.3 kB | 10.3 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-da9f477..d581.js gzip | 6.73 kB | 6.73 kB | ✓ |
webpack-ccf5..276a.js gzip | 751 B | 751 B | ✓ |
Overall change | 56.9 kB | 56.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.21 kB | 6.21 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-ccc9938..dule.js gzip | 5.81 kB | 5.81 kB | ✓ |
webpack-10c7..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 51.9 kB | 51.9 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
polyfills-75..1629.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
_app-874bd8a..0103.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-fa39c..ec40.js gzip | 3.45 kB | 3.45 kB | ✓ |
hooks-585f07..95a3.js gzip | 887 B | 887 B | ✓ |
index-c7b63f..fc02.js gzip | 227 B | 227 B | ✓ |
link-f4d2979..e57b.js gzip | 1.29 kB | 1.29 kB | ✓ |
routerDirect..ebc7.js gzip | 284 B | 284 B | ✓ |
withRouter-2..db68.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.71 kB | 7.71 kB | ✓ |
Client Pages Modern
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
_app-97e743e..dule.js gzip | 626 B | 626 B | ✓ |
_error-b4004..dule.js gzip | 2.3 kB | 2.3 kB | ✓ |
hooks-696209..dule.js gzip | 387 B | 387 B | ✓ |
index-a4dd74..dule.js gzip | 226 B | 226 B | ✓ |
link-653c74f..dule.js gzip | 1.26 kB | 1.26 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-1..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 273 B | 273 B | ✓ |
_buildManife..dule.js gzip | 280 B | 280 B | ✓ |
Overall change | 553 B | 553 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
index.html gzip | 947 B | 947 B | ✓ |
link.html gzip | 953 B | 953 B | ✓ |
withRouter.html gzip | 942 B | 942 B | ✓ |
Overall change | 2.84 kB | 2.84 kB | ✓ |
Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
buildDuration | 15.6s | 15.1s | -520ms |
nodeModulesSize | 66 MB | 66 MB | -14 B |
Client Bundles (main, webpack, commons)
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..8895.js gzip | 10.3 kB | 10.3 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-da9f477..d581.js gzip | 6.73 kB | 6.73 kB | ✓ |
webpack-ccf5..276a.js gzip | 751 B | 751 B | ✓ |
Overall change | 56.9 kB | 56.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.21 kB | 6.21 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-ccc9938..dule.js gzip | 5.81 kB | 5.81 kB | ✓ |
webpack-10c7..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 51.9 kB | 51.9 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
polyfills-75..1629.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
_app-874bd8a..0103.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-fa39c..ec40.js gzip | 3.45 kB | 3.45 kB | ✓ |
hooks-585f07..95a3.js gzip | 887 B | 887 B | ✓ |
index-c7b63f..fc02.js gzip | 227 B | 227 B | ✓ |
link-f4d2979..e57b.js gzip | 1.29 kB | 1.29 kB | ✓ |
routerDirect..ebc7.js gzip | 284 B | 284 B | ✓ |
withRouter-2..db68.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.71 kB | 7.71 kB | ✓ |
Client Pages Modern
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
_app-97e743e..dule.js gzip | 626 B | 626 B | ✓ |
_error-b4004..dule.js gzip | 2.3 kB | 2.3 kB | ✓ |
hooks-696209..dule.js gzip | 387 B | 387 B | ✓ |
index-a4dd74..dule.js gzip | 226 B | 226 B | ✓ |
link-653c74f..dule.js gzip | 1.26 kB | 1.26 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-1..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 273 B | 273 B | ✓ |
_buildManife..dule.js gzip | 280 B | 280 B | ✓ |
Overall change | 553 B | 553 B | ✓ |
Serverless bundles
vercel/next.js canary | evilrabbit/next.js patch-1 | Change | |
---|---|---|---|
_error.js | 1.03 MB | 1.03 MB | ✓ |
404.html | 4.18 kB | 4.18 kB | ✓ |
hooks.html | 3.82 kB | 3.82 kB | ✓ |
index.js | 1.03 MB | 1.03 MB | ✓ |
link.js | 1.07 MB | 1.07 MB | ✓ |
routerDirect.js | 1.06 MB | 1.06 MB | ✓ |
withRouter.js | 1.06 MB | 1.06 MB | ✓ |
Overall change | 5.25 MB | 5.25 MB | ✓ |
Stats from current PRDefault Server Mode (Decrease detected ✓)General
Page Load Tests Overall decrease
|
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.24 | 2.295 | |
/ avg req/sec | 1116.29 | 1089.32 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.238 | 1.298 | |
/error-in-render avg req/sec | 2020.16 | 1926.1 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..ec1a.js gzip | 9.99 kB | 9.99 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-c30ac70..0d39.js gzip | 6.74 kB | 6.74 kB | ✓ |
webpack-ccf5..276a.js gzip | 751 B | 751 B | ✓ |
Overall change | 56.6 kB | 56.6 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 5.89 kB | 5.89 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-61da9c7..dule.js gzip | 5.81 kB | 5.81 kB | ✓ |
webpack-10c7..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 51.6 kB | 51.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
polyfills-75..1629.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-874bd8a..0103.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-fa39c..ec40.js gzip | 3.45 kB | 3.45 kB | ✓ |
hooks-585f07..95a3.js gzip | 887 B | 887 B | ✓ |
index-c7b63f..fc02.js gzip | 227 B | 227 B | ✓ |
link-f4d2979..e57b.js gzip | 1.29 kB | 1.29 kB | ✓ |
routerDirect..ebc7.js gzip | 284 B | 284 B | ✓ |
withRouter-2..db68.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.71 kB | 7.71 kB | ✓ |
Client Pages Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-97e743e..dule.js gzip | 626 B | 626 B | ✓ |
_error-b4004..dule.js gzip | 2.3 kB | 2.3 kB | ✓ |
hooks-696209..dule.js gzip | 387 B | 387 B | ✓ |
index-a4dd74..dule.js gzip | 226 B | 226 B | ✓ |
link-653c74f..dule.js gzip | 1.26 kB | 1.26 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-1..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 273 B | 273 B | ✓ |
_buildManife..dule.js gzip | 280 B | 280 B | ✓ |
Overall change | 553 B | 553 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
index.html gzip | 946 B | 946 B | ✓ |
link.html gzip | 953 B | 953 B | ✓ |
withRouter.html gzip | 940 B | 940 B | ✓ |
Overall change | 2.84 kB | 2.84 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
buildDuration | 13.9s | 13.9s | -29ms |
nodeModulesSize | 66 MB | 66 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..ec1a.js gzip | 9.99 kB | 9.99 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-c30ac70..0d39.js gzip | 6.74 kB | 6.74 kB | ✓ |
webpack-ccf5..276a.js gzip | 751 B | 751 B | ✓ |
Overall change | 56.6 kB | 56.6 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 5.89 kB | 5.89 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-61da9c7..dule.js gzip | 5.81 kB | 5.81 kB | ✓ |
webpack-10c7..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 51.6 kB | 51.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
polyfills-75..1629.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-874bd8a..0103.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-fa39c..ec40.js gzip | 3.45 kB | 3.45 kB | ✓ |
hooks-585f07..95a3.js gzip | 887 B | 887 B | ✓ |
index-c7b63f..fc02.js gzip | 227 B | 227 B | ✓ |
link-f4d2979..e57b.js gzip | 1.29 kB | 1.29 kB | ✓ |
routerDirect..ebc7.js gzip | 284 B | 284 B | ✓ |
withRouter-2..db68.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.71 kB | 7.71 kB | ✓ |
Client Pages Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-97e743e..dule.js gzip | 626 B | 626 B | ✓ |
_error-b4004..dule.js gzip | 2.3 kB | 2.3 kB | ✓ |
hooks-696209..dule.js gzip | 387 B | 387 B | ✓ |
index-a4dd74..dule.js gzip | 226 B | 226 B | ✓ |
link-653c74f..dule.js gzip | 1.26 kB | 1.26 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-1..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 273 B | 273 B | ✓ |
_buildManife..dule.js gzip | 280 B | 280 B | ✓ |
Overall change | 553 B | 553 B | ✓ |
Serverless bundles
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_error.js | 1.03 MB | 1.03 MB | ✓ |
404.html | 4.18 kB | 4.18 kB | ✓ |
hooks.html | 3.82 kB | 3.82 kB | ✓ |
index.js | 1.03 MB | 1.03 MB | ✓ |
link.js | 1.07 MB | 1.07 MB | ✓ |
routerDirect.js | 1.06 MB | 1.06 MB | ✓ |
withRouter.js | 1.06 MB | 1.06 MB | ✓ |
Overall change | 5.26 MB | 5.26 MB | ✓ |
Stats from current PRDefault Server Mode (Decrease detected ✓)General
Page Load Tests Overall decrease
|
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.099 | 2.123 | |
/ avg req/sec | 1191.18 | 1177.63 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.162 | 1.176 | |
/error-in-render avg req/sec | 2151.69 | 2125.4 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..c139.js gzip | 10.2 kB | 10.2 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-52b3964..e4b8.js gzip | 6.74 kB | 6.74 kB | ✓ |
webpack-ccf5..276a.js gzip | 751 B | 751 B | ✓ |
Overall change | 56.9 kB | 56.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.12 kB | 6.12 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-af2596f..dule.js gzip | 5.82 kB | 5.82 kB | ✓ |
webpack-10c7..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 51.8 kB | 51.8 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
polyfills-75..1629.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
_app-874bd8a..0103.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-fa39c..ec40.js gzip | 3.45 kB | 3.45 kB | ✓ |
hooks-585f07..95a3.js gzip | 887 B | 887 B | ✓ |
index-c7b63f..fc02.js gzip | 227 B | 227 B | ✓ |
link-4c2bd9b..eadd.js gzip | 1.29 kB | 1.29 kB | ✓ |
routerDirect..ebc7.js gzip | 284 B | 284 B | ✓ |
withRouter-2..db68.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.71 kB | 7.71 kB | ✓ |
Client Pages Modern
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
_app-97e743e..dule.js gzip | 626 B | 626 B | ✓ |
_error-b4004..dule.js gzip | 2.3 kB | 2.3 kB | ✓ |
hooks-696209..dule.js gzip | 387 B | 387 B | ✓ |
index-a4dd74..dule.js gzip | 226 B | 226 B | ✓ |
link-236a801..dule.js gzip | 1.26 kB | 1.26 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-1..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 650 B | 650 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
index.html gzip | 947 B | 947 B | ✓ |
link.html gzip | 955 B | 955 B | ✓ |
withRouter.html gzip | 942 B | 942 B | ✓ |
Overall change | 2.84 kB | 2.84 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
buildDuration | 13.1s | 12.6s | -429ms |
nodeModulesSize | 57.3 MB | 57.3 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..c139.js gzip | 10.2 kB | 10.2 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-52b3964..e4b8.js gzip | 6.74 kB | 6.74 kB | ✓ |
webpack-ccf5..276a.js gzip | 751 B | 751 B | ✓ |
Overall change | 56.9 kB | 56.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.12 kB | 6.12 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-af2596f..dule.js gzip | 5.82 kB | 5.82 kB | ✓ |
webpack-10c7..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 51.8 kB | 51.8 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
polyfills-75..1629.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
_app-874bd8a..0103.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-fa39c..ec40.js gzip | 3.45 kB | 3.45 kB | ✓ |
hooks-585f07..95a3.js gzip | 887 B | 887 B | ✓ |
index-c7b63f..fc02.js gzip | 227 B | 227 B | ✓ |
link-4c2bd9b..eadd.js gzip | 1.29 kB | 1.29 kB | ✓ |
routerDirect..ebc7.js gzip | 284 B | 284 B | ✓ |
withRouter-2..db68.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.71 kB | 7.71 kB | ✓ |
Client Pages Modern
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
_app-97e743e..dule.js gzip | 626 B | 626 B | ✓ |
_error-b4004..dule.js gzip | 2.3 kB | 2.3 kB | ✓ |
hooks-696209..dule.js gzip | 387 B | 387 B | ✓ |
index-a4dd74..dule.js gzip | 226 B | 226 B | ✓ |
link-236a801..dule.js gzip | 1.26 kB | 1.26 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-1..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 650 B | 650 B | ✓ |
Serverless bundles
vercel/next.js canary | leeDav/next.js patch-1 | Change | |
---|---|---|---|
_error.js | 1.03 MB | 1.03 MB | ✓ |
404.html | 4.18 kB | 4.18 kB | ✓ |
hooks.html | 3.82 kB | 3.82 kB | ✓ |
index.js | 1.03 MB | 1.03 MB | ✓ |
link.js | 1.07 MB | 1.07 MB | ✓ |
routerDirect.js | 1.06 MB | 1.06 MB | ✓ |
withRouter.js | 1.06 MB | 1.06 MB | ✓ |
Overall change | 5.27 MB | 5.27 MB | ✓ |
timneutkens
approved these changes
Aug 16, 2020
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
buildDuration | 11.6s | 11.6s | |
nodeModulesSize | 57.3 MB | 57.3 MB | ✓ |
Page Load Tests Overall increase ✓
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.164 | 2.163 | 0 |
/ avg req/sec | 1155.42 | 1155.91 | +0.49 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.322 | 1.298 | -0.02 |
/error-in-render avg req/sec | 1891.45 | 1925.97 | +34.52 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..c139.js gzip | 10.2 kB | 10.2 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-52b3964..e4b8.js gzip | 6.74 kB | 6.74 kB | ✓ |
webpack-ccf5..276a.js gzip | 751 B | 751 B | ✓ |
Overall change | 56.9 kB | 56.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.12 kB | 6.12 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-af2596f..dule.js gzip | 5.82 kB | 5.82 kB | ✓ |
webpack-10c7..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 51.8 kB | 51.8 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
polyfills-75..1629.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-874bd8a..0103.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-fa39c..ec40.js gzip | 3.45 kB | 3.45 kB | ✓ |
hooks-585f07..95a3.js gzip | 887 B | 887 B | ✓ |
index-c7b63f..fc02.js gzip | 227 B | 227 B | ✓ |
link-4c2bd9b..eadd.js gzip | 1.29 kB | 1.29 kB | ✓ |
routerDirect..ebc7.js gzip | 284 B | 284 B | ✓ |
withRouter-2..db68.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.71 kB | 7.71 kB | ✓ |
Client Pages Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-97e743e..dule.js gzip | 626 B | 626 B | ✓ |
_error-b4004..dule.js gzip | 2.3 kB | 2.3 kB | ✓ |
hooks-696209..dule.js gzip | 387 B | 387 B | ✓ |
index-a4dd74..dule.js gzip | 226 B | 226 B | ✓ |
link-236a801..dule.js gzip | 1.26 kB | 1.26 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-1..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 650 B | 650 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
index.html gzip | 947 B | 947 B | ✓ |
link.html gzip | 955 B | 955 B | ✓ |
withRouter.html gzip | 942 B | 942 B | ✓ |
Overall change | 2.84 kB | 2.84 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
buildDuration | 13.1s | 13s | -107ms |
nodeModulesSize | 57.3 MB | 57.3 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..c139.js gzip | 10.2 kB | 10.2 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-52b3964..e4b8.js gzip | 6.74 kB | 6.74 kB | ✓ |
webpack-ccf5..276a.js gzip | 751 B | 751 B | ✓ |
Overall change | 56.9 kB | 56.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 6.12 kB | 6.12 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
main-af2596f..dule.js gzip | 5.82 kB | 5.82 kB | ✓ |
webpack-10c7..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 51.8 kB | 51.8 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
polyfills-75..1629.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-874bd8a..0103.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-fa39c..ec40.js gzip | 3.45 kB | 3.45 kB | ✓ |
hooks-585f07..95a3.js gzip | 887 B | 887 B | ✓ |
index-c7b63f..fc02.js gzip | 227 B | 227 B | ✓ |
link-4c2bd9b..eadd.js gzip | 1.29 kB | 1.29 kB | ✓ |
routerDirect..ebc7.js gzip | 284 B | 284 B | ✓ |
withRouter-2..db68.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.71 kB | 7.71 kB | ✓ |
Client Pages Modern
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_app-97e743e..dule.js gzip | 626 B | 626 B | ✓ |
_error-b4004..dule.js gzip | 2.3 kB | 2.3 kB | ✓ |
hooks-696209..dule.js gzip | 387 B | 387 B | ✓ |
index-a4dd74..dule.js gzip | 226 B | 226 B | ✓ |
link-236a801..dule.js gzip | 1.26 kB | 1.26 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-1..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.37 kB | 5.37 kB | ✓ |
Client Build Manifests
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 650 B | 650 B | ✓ |
Serverless bundles
vercel/next.js canary | cargallo/next.js patch-1 | Change | |
---|---|---|---|
_error.js | 1.03 MB | 1.03 MB | ✓ |
404.html | 4.18 kB | 4.18 kB | ✓ |
hooks.html | 3.82 kB | 3.82 kB | ✓ |
index.js | 1.03 MB | 1.03 MB | ✓ |
link.js | 1.07 MB | 1.07 MB | ✓ |
routerDirect.js | 1.06 MB | 1.06 MB | ✓ |
withRouter.js | 1.06 MB | 1.06 MB | ✓ |
Overall change | 5.27 MB | 5.27 MB | ✓ |
m-lautenbach
pushed a commit
to m-lautenbach/next.js
that referenced
this pull request
Aug 20, 2020
Added a section in readme with the proper use of the plugin with next-compose-plugins ^2.0.0, otherwise it doesn't work
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added a section in readme with the proper use of the plugin with next-compose-plugins ^2.0.0, otherwise it doesn't work