Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Next.js prefetching should use requestIdleCallback #14580

Merged
merged 6 commits into from
Jul 28, 2020

Conversation

khattakdev
Copy link
Contributor

close #14463

@khattakdev khattakdev changed the title use requestIdleCallback for Prefetching Next.js prefetching should use requestIdleCallback Jun 26, 2020
Add fallback for requestIdleCallback, if browser doesn't have the feature.
Remove deadline.timeRemaining() condition
@ijjk
Copy link
Member

ijjk commented Jun 26, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
buildDuration 12.5s 12s -459ms
nodeModulesSize 67.1 MB 67.1 MB ⚠️ +1.18 kB
Page Load Tests Overall increase ✓
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
/ failed reqs 0 0
/ total time (seconds) 2.077 1.994 -0.08
/ avg req/sec 1203.65 1253.93 ⚠️ +50.28
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.223 1.209 -0.01
/error-in-render avg req/sec 2044.83 2068.35 ⚠️ +23.52
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.js gzip 6.51 kB 6.59 kB ⚠️ +79 B
webpack-HASH.js gzip 751 B 751 B
19b7e98f51cc..558d.js gzip 10.7 kB 10.7 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57.1 kB 57.2 kB ⚠️ +79 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.module.js gzip 5.59 kB 5.68 kB ⚠️ +81 B
webpack-HASH..dule.js gzip 751 B 751 B
19b7e98f51cc..dule.js gzip 7.08 kB 7.08 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.6 kB 52.7 kB ⚠️ +81 B
Legacy Client Bundles (polyfills)
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Build Manifests
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
_buildManifest.js gzip 268 B 268 B
_buildManife..dule.js gzip 272 B 272 B
Overall change 540 B 540 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
index.html gzip 952 B 953 B ⚠️ +1 B
link.html gzip 957 B 958 B ⚠️ +1 B
withRouter.html gzip 944 B 945 B ⚠️ +1 B
Overall change 2.85 kB 2.86 kB ⚠️ +3 B

Diffs

Diff for main-HASH.js
@@ -1468,6 +1468,20 @@ _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");
+
+      window.requestIdleCallback =
+        window.requestIdleCallback ||
+        function(cb) {
+          var start = Date.now();
+          return setTimeout(function() {
+            cb({
+              didTimeout: false,
+              timeRemaining: function timeRemaining() {
+                return Math.max(0, 50 - (Date.now() - start));
+              }
+            });
+          }, 1);
+        };
       /** @param {string} route */
 
       function normalizeRoute(route) {
@@ -1657,18 +1671,20 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                 hrefPathname = _ref3.pathname;
 
               var route = normalizeRoute(hrefPathname);
-              return this.promisedSsgManifest.then(function(s, _dataHref) {
-                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)) && // noop when data has already been prefetched (dedupe)
-                  !document.querySelector(
-                    'link[rel="'
-                      .concat(relPrefetch, '"][href^="')
-                      .concat(_dataHref, '"]')
-                  ) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
-                  appendLink(_dataHref, relPrefetch, "fetch")
-                );
+              window.requestIdleCallback(function() {
+                return _this3.promisedSsgManifest.then(function(s, _dataHref) {
+                  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)) && // noop when data has already been prefetched (dedupe)
+                    !document.querySelector(
+                      'link[rel="'
+                        .concat(relPrefetch, '"][href^="')
+                        .concat(_dataHref, '"]')
+                    ) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
+                    appendLink(_dataHref, relPrefetch, "fetch")
+                  );
+                });
               });
             }
           },
Diff for main-HASH.module.js
@@ -1109,6 +1109,20 @@
           : // IE 11, Edge 12+, nearly all evergreen
             "prefetch";
       var hasNoModule = "noModule" in document.createElement("script");
+
+      window.requestIdleCallback =
+        window.requestIdleCallback ||
+        function(cb) {
+          var start = Date.now();
+          return setTimeout(function() {
+            cb({
+              didTimeout: false,
+              timeRemaining: function timeRemaining() {
+                return Math.max(0, 50 - (Date.now() - start));
+              }
+            });
+          }, 1);
+        };
       /** @param {string} route */
 
       function normalizeRoute(route) {
@@ -1267,20 +1281,22 @@
         prefetchData(href, asPath) {
           var { pathname: hrefPathname } = (0, _url.parse)(href, true);
           var route = normalizeRoute(hrefPathname);
-          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)) && // noop when data has already been prefetched (dedupe)
-              !document.querySelector(
-                'link[rel="'
-                  .concat(relPrefetch, '"][href^="')
-                  .concat(_dataHref, '"]')
-              ) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
-              appendLink(_dataHref, relPrefetch, "fetch")
-          );
+          window.requestIdleCallback(() => {
+            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)) && // noop when data has already been prefetched (dedupe)
+                !document.querySelector(
+                  'link[rel="'
+                    .concat(relPrefetch, '"][href^="')
+                    .concat(_dataHref, '"]')
+                ) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
+                appendLink(_dataHref, relPrefetch, "fetch")
+            );
+          });
         }
 
         loadPage(route) {
Diff for index.html
@@ -6,7 +6,7 @@
     <meta name="next-head-count" content="2" />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-86c8d1c59f7b840fc0c6.module.js"
+      href="/_next/static/runtime/main-8ada6bcb242c27ca75e1.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -81,13 +81,13 @@
       src="/_next/static/runtime/polyfills-e77205bd3f87781c0279.js"
     ></script>
     <script
-      src="/_next/static/runtime/main-381664fb3223b8cd15e7.js"
+      src="/_next/static/runtime/main-b9432a303b9535568893.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/runtime/main-86c8d1c59f7b840fc0c6.module.js"
+      src="/_next/static/runtime/main-8ada6bcb242c27ca75e1.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/runtime/main-86c8d1c59f7b840fc0c6.module.js"
+      href="/_next/static/runtime/main-8ada6bcb242c27ca75e1.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -86,13 +86,13 @@
       src="/_next/static/runtime/polyfills-e77205bd3f87781c0279.js"
     ></script>
     <script
-      src="/_next/static/runtime/main-381664fb3223b8cd15e7.js"
+      src="/_next/static/runtime/main-b9432a303b9535568893.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/runtime/main-86c8d1c59f7b840fc0c6.module.js"
+      src="/_next/static/runtime/main-8ada6bcb242c27ca75e1.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/runtime/main-86c8d1c59f7b840fc0c6.module.js"
+      href="/_next/static/runtime/main-8ada6bcb242c27ca75e1.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -81,13 +81,13 @@
       src="/_next/static/runtime/polyfills-e77205bd3f87781c0279.js"
     ></script>
     <script
-      src="/_next/static/runtime/main-381664fb3223b8cd15e7.js"
+      src="/_next/static/runtime/main-b9432a303b9535568893.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/runtime/main-86c8d1c59f7b840fc0c6.module.js"
+      src="/_next/static/runtime/main-8ada6bcb242c27ca75e1.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
buildDuration 12.7s 13.1s ⚠️ +391ms
nodeModulesSize 67.1 MB 67.1 MB ⚠️ +1.18 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.js gzip 6.51 kB 6.59 kB ⚠️ +79 B
webpack-HASH.js gzip 751 B 751 B
19b7e98f51cc..558d.js gzip 10.7 kB 10.7 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57.1 kB 57.2 kB ⚠️ +79 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.module.js gzip 5.59 kB 5.68 kB ⚠️ +81 B
webpack-HASH..dule.js gzip 751 B 751 B
19b7e98f51cc..dule.js gzip 7.08 kB 7.08 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.6 kB 52.7 kB ⚠️ +81 B
Legacy Client Bundles (polyfills)
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Build Manifests
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
_buildManifest.js gzip 268 B 268 B
_buildManife..dule.js gzip 272 B 272 B
Overall change 540 B 540 B
Serverless bundles
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
_error.js 875 kB 875 kB
404.html 4.17 kB 4.17 kB
hooks.html 3.79 kB 3.79 kB
index.js 876 kB 876 kB
link.js 916 kB 916 kB
routerDirect.js 908 kB 908 kB
withRouter.js 908 kB 908 kB
Overall change 4.49 MB 4.49 MB
Commit: 470140a

@ijjk
Copy link
Member

ijjk commented Jun 26, 2020

Failing test suites

Commit: 470140a

test/integration/build-output/test/index.test.js

  • Build Output > Basic Application Output > should not deviate from snapshot
Expand output

● Build Output › Basic Application Output › should not deviate from snapshot

expect(received).toBeLessThanOrEqual(expected)

Expected: <= 0
Received:    0.020000000000000462

  114 |       expect(webpackSize.endsWith('B')).toBe(true)
  115 | 
> 116 |       expect(parseFloat(mainSize) - 6.3).toBeLessThanOrEqual(0)
      |                                          ^
  117 |       expect(mainSize.endsWith('kB')).toBe(true)
  118 | 
  119 |       expect(parseFloat(frameworkSize) - 41).toBeLessThanOrEqual(0)

  at Object.<anonymous> (integration/build-output/test/index.test.js:116:42)

@ijjk
Copy link
Member

ijjk commented Jun 29, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
buildDuration 13.8s 13.6s -195ms
nodeModulesSize 67.1 MB 67.1 MB ⚠️ +1.17 kB
Page Load Tests Overall increase ✓
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
/ failed reqs 0 0
/ total time (seconds) 2.319 2.306 -0.01
/ avg req/sec 1077.99 1083.92 +5.93
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.567 1.482 -0.08
/error-in-render avg req/sec 1595.01 1687.26 +92.25
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.js gzip 6.51 kB 6.59 kB ⚠️ +78 B
webpack-HASH.js gzip 751 B 751 B
19b7e98f51cc..558d.js gzip 10.7 kB 10.7 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57.1 kB 57.2 kB ⚠️ +78 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.module.js gzip 5.59 kB 5.67 kB ⚠️ +75 B
webpack-HASH..dule.js gzip 751 B 751 B
19b7e98f51cc..dule.js gzip 7.08 kB 7.08 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.6 kB 52.7 kB ⚠️ +75 B
Legacy Client Bundles (polyfills)
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Build Manifests
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
_buildManifest.js gzip 268 B 268 B
_buildManife..dule.js gzip 272 B 272 B
Overall change 540 B 540 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
index.html gzip 954 B 954 B
link.html gzip 959 B 960 B ⚠️ +1 B
withRouter.html gzip 947 B 947 B
Overall change 2.86 kB 2.86 kB ⚠️ +1 B

Diffs

Diff for main-HASH.js
@@ -1468,6 +1468,20 @@ _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) {
+          var start = Date.now();
+          return setTimeout(function() {
+            cb({
+              didTimeout: false,
+              timeRemaining: function timeRemaining() {
+                return Math.max(0, 50 - (Date.now() - start));
+              }
+            });
+          }, 1);
+        };
       /** @param {string} route */
 
       function normalizeRoute(route) {
@@ -1657,18 +1671,20 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                 hrefPathname = _ref3.pathname;
 
               var route = normalizeRoute(hrefPathname);
-              return this.promisedSsgManifest.then(function(s, _dataHref) {
-                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)) && // noop when data has already been prefetched (dedupe)
-                  !document.querySelector(
-                    'link[rel="'
-                      .concat(relPrefetch, '"][href^="')
-                      .concat(_dataHref, '"]')
-                  ) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
-                  appendLink(_dataHref, relPrefetch, "fetch")
-                );
+              requestIdleCallback(function() {
+                return _this3.promisedSsgManifest.then(function(s, _dataHref) {
+                  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)) && // noop when data has already been prefetched (dedupe)
+                    !document.querySelector(
+                      'link[rel="'
+                        .concat(relPrefetch, '"][href^="')
+                        .concat(_dataHref, '"]')
+                    ) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
+                    appendLink(_dataHref, relPrefetch, "fetch")
+                  );
+                });
               });
             }
           },
Diff for main-HASH.module.js
@@ -1109,6 +1109,20 @@
           : // IE 11, Edge 12+, nearly all evergreen
             "prefetch";
       var hasNoModule = "noModule" in document.createElement("script");
+
+      var requestIdleCallback =
+        window.requestIdleCallback ||
+        function(cb) {
+          var start = Date.now();
+          return setTimeout(function() {
+            cb({
+              didTimeout: false,
+              timeRemaining: function timeRemaining() {
+                return Math.max(0, 50 - (Date.now() - start));
+              }
+            });
+          }, 1);
+        };
       /** @param {string} route */
 
       function normalizeRoute(route) {
@@ -1267,20 +1281,22 @@
         prefetchData(href, asPath) {
           var { pathname: hrefPathname } = (0, _url.parse)(href, true);
           var route = normalizeRoute(hrefPathname);
-          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)) && // noop when data has already been prefetched (dedupe)
-              !document.querySelector(
-                'link[rel="'
-                  .concat(relPrefetch, '"][href^="')
-                  .concat(_dataHref, '"]')
-              ) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
-              appendLink(_dataHref, relPrefetch, "fetch")
-          );
+          requestIdleCallback(() => {
+            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)) && // noop when data has already been prefetched (dedupe)
+                !document.querySelector(
+                  'link[rel="'
+                    .concat(relPrefetch, '"][href^="')
+                    .concat(_dataHref, '"]')
+                ) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
+                appendLink(_dataHref, relPrefetch, "fetch")
+            );
+          });
         }
 
         loadPage(route) {
Diff for index.html
@@ -6,7 +6,7 @@
     <meta name="next-head-count" content="2" />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-fd17916cd0614b81f6d3.module.js"
+      href="/_next/static/runtime/main-04c58270d09a8dcb06a5.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -81,13 +81,13 @@
       src="/_next/static/runtime/polyfills-e77205bd3f87781c0279.js"
     ></script>
     <script
-      src="/_next/static/runtime/main-9af73f4e48de86eb2a2a.js"
+      src="/_next/static/runtime/main-a6fa4a31e0d1533d3fbd.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/runtime/main-fd17916cd0614b81f6d3.module.js"
+      src="/_next/static/runtime/main-04c58270d09a8dcb06a5.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/runtime/main-fd17916cd0614b81f6d3.module.js"
+      href="/_next/static/runtime/main-04c58270d09a8dcb06a5.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -86,13 +86,13 @@
       src="/_next/static/runtime/polyfills-e77205bd3f87781c0279.js"
     ></script>
     <script
-      src="/_next/static/runtime/main-9af73f4e48de86eb2a2a.js"
+      src="/_next/static/runtime/main-a6fa4a31e0d1533d3fbd.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/runtime/main-fd17916cd0614b81f6d3.module.js"
+      src="/_next/static/runtime/main-04c58270d09a8dcb06a5.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/runtime/main-fd17916cd0614b81f6d3.module.js"
+      href="/_next/static/runtime/main-04c58270d09a8dcb06a5.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -81,13 +81,13 @@
       src="/_next/static/runtime/polyfills-e77205bd3f87781c0279.js"
     ></script>
     <script
-      src="/_next/static/runtime/main-9af73f4e48de86eb2a2a.js"
+      src="/_next/static/runtime/main-a6fa4a31e0d1533d3fbd.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/runtime/main-fd17916cd0614b81f6d3.module.js"
+      src="/_next/static/runtime/main-04c58270d09a8dcb06a5.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
buildDuration 14.6s 14.9s ⚠️ +345ms
nodeModulesSize 67.1 MB 67.1 MB ⚠️ +1.17 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.js gzip 6.51 kB 6.59 kB ⚠️ +78 B
webpack-HASH.js gzip 751 B 751 B
19b7e98f51cc..558d.js gzip 10.7 kB 10.7 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57.1 kB 57.2 kB ⚠️ +78 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.module.js gzip 5.59 kB 5.67 kB ⚠️ +75 B
webpack-HASH..dule.js gzip 751 B 751 B
19b7e98f51cc..dule.js gzip 7.08 kB 7.08 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.6 kB 52.7 kB ⚠️ +75 B
Legacy Client Bundles (polyfills)
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Build Manifests
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
_buildManifest.js gzip 268 B 268 B
_buildManife..dule.js gzip 272 B 272 B
Overall change 540 B 540 B
Serverless bundles
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
_error.js 875 kB 875 kB
404.html 4.17 kB 4.17 kB
hooks.html 3.79 kB 3.79 kB
index.js 876 kB 876 kB
link.js 916 kB 916 kB
routerDirect.js 908 kB 908 kB
withRouter.js 908 kB 908 kB
Overall change 4.49 MB 4.49 MB
Commit: f13b7e1

@ijjk
Copy link
Member

ijjk commented Jun 29, 2020

Failing test suites

Commit: f13b7e1

test/integration/build-output/test/index.test.js

  • Build Output > Basic Application Output > should not deviate from snapshot
Expand output

● Build Output › Basic Application Output › should not deviate from snapshot

expect(received).toBeLessThanOrEqual(expected)

Expected: <= 0
Received:    0.009999999999999787

  114 |       expect(webpackSize.endsWith('B')).toBe(true)
  115 | 
> 116 |       expect(parseFloat(mainSize) - 6.3).toBeLessThanOrEqual(0)
      |                                          ^
  117 |       expect(mainSize.endsWith('kB')).toBe(true)
  118 | 
  119 |       expect(parseFloat(frameworkSize) - 41).toBeLessThanOrEqual(0)

  at Object.<anonymous> (integration/build-output/test/index.test.js:116:42)

@ijjk
Copy link
Member

ijjk commented Jun 29, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
buildDuration 10.4s 10.5s ⚠️ +134ms
nodeModulesSize 67.1 MB 67.1 MB ⚠️ +537 B
Page Load Tests Overall increase ✓
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
/ failed reqs 0 0
/ total time (seconds) 1.677 1.664 -0.01
/ avg req/sec 1490.57 1502.71 +12.14
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.027 1.012 -0.01
/error-in-render avg req/sec 2434.11 2470.35 +36.24
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.js gzip 6.51 kB 6.54 kB ⚠️ +35 B
webpack-HASH.js gzip 751 B 751 B
19b7e98f51cc..2bd7.js gzip 10.7 kB 10.7 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57.1 kB 57.2 kB ⚠️ +35 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.module.js gzip 5.59 kB 5.62 kB ⚠️ +30 B
webpack-HASH..dule.js gzip 751 B 751 B
19b7e98f51cc..dule.js gzip 7.1 kB 7.1 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.6 kB 52.6 kB ⚠️ +30 B
Legacy Client Bundles (polyfills)
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Build Manifests
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
_buildManifest.js gzip 268 B 268 B
_buildManife..dule.js gzip 272 B 272 B
Overall change 540 B 540 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
index.html gzip 952 B 954 B ⚠️ +2 B
link.html gzip 958 B 959 B ⚠️ +1 B
withRouter.html gzip 946 B 947 B ⚠️ +1 B
Overall change 2.86 kB 2.86 kB ⚠️ +4 B

Diffs

Diff for main-HASH.js
@@ -1465,6 +1465,12 @@ _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) {
@@ -1654,18 +1660,20 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
                 hrefPathname = _ref3.pathname;
 
               var route = normalizeRoute(hrefPathname);
-              return this.promisedSsgManifest.then(function(s, _dataHref) {
-                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)) && // noop when data has already been prefetched (dedupe)
-                  !document.querySelector(
-                    'link[rel="'
-                      .concat(relPrefetch, '"][href^="')
-                      .concat(_dataHref, '"]')
-                  ) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
-                  appendLink(_dataHref, relPrefetch, "fetch")
-                );
+              requestIdleCallback(function() {
+                return _this3.promisedSsgManifest.then(function(s, _dataHref) {
+                  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)) && // noop when data has already been prefetched (dedupe)
+                    !document.querySelector(
+                      'link[rel="'
+                        .concat(relPrefetch, '"][href^="')
+                        .concat(_dataHref, '"]')
+                    ) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
+                    appendLink(_dataHref, relPrefetch, "fetch")
+                  );
+                });
               });
             }
           },
Diff for main-HASH.module.js
@@ -1106,6 +1106,12 @@
           : // 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,20 +1270,22 @@
         prefetchData(href, asPath) {
           var { pathname: hrefPathname } = (0, _url.parse)(href, true);
           var route = normalizeRoute(hrefPathname);
-          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)) && // noop when data has already been prefetched (dedupe)
-              !document.querySelector(
-                'link[rel="'
-                  .concat(relPrefetch, '"][href^="')
-                  .concat(_dataHref, '"]')
-              ) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
-              appendLink(_dataHref, relPrefetch, "fetch")
-          );
+          requestIdleCallback(() => {
+            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)) && // noop when data has already been prefetched (dedupe)
+                !document.querySelector(
+                  'link[rel="'
+                    .concat(relPrefetch, '"][href^="')
+                    .concat(_dataHref, '"]')
+                ) && // Inject the `<link rel=prefetch>` tag for above computed `href`.
+                appendLink(_dataHref, relPrefetch, "fetch")
+            );
+          });
         }
 
         loadPage(route) {
Diff for index.html
@@ -6,7 +6,7 @@
     <meta name="next-head-count" content="2" />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-9ec4f16ab966aac3b436.module.js"
+      href="/_next/static/runtime/main-cd745010e4e14fa9e635.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -81,13 +81,13 @@
       src="/_next/static/runtime/polyfills-e77205bd3f87781c0279.js"
     ></script>
     <script
-      src="/_next/static/runtime/main-e535c7ca56db95621a7e.js"
+      src="/_next/static/runtime/main-fc7ae8eaf82427e8880a.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/runtime/main-9ec4f16ab966aac3b436.module.js"
+      src="/_next/static/runtime/main-cd745010e4e14fa9e635.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/runtime/main-9ec4f16ab966aac3b436.module.js"
+      href="/_next/static/runtime/main-cd745010e4e14fa9e635.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -86,13 +86,13 @@
       src="/_next/static/runtime/polyfills-e77205bd3f87781c0279.js"
     ></script>
     <script
-      src="/_next/static/runtime/main-e535c7ca56db95621a7e.js"
+      src="/_next/static/runtime/main-fc7ae8eaf82427e8880a.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/runtime/main-9ec4f16ab966aac3b436.module.js"
+      src="/_next/static/runtime/main-cd745010e4e14fa9e635.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/runtime/main-9ec4f16ab966aac3b436.module.js"
+      href="/_next/static/runtime/main-cd745010e4e14fa9e635.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -81,13 +81,13 @@
       src="/_next/static/runtime/polyfills-e77205bd3f87781c0279.js"
     ></script>
     <script
-      src="/_next/static/runtime/main-e535c7ca56db95621a7e.js"
+      src="/_next/static/runtime/main-fc7ae8eaf82427e8880a.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/runtime/main-9ec4f16ab966aac3b436.module.js"
+      src="/_next/static/runtime/main-cd745010e4e14fa9e635.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
buildDuration 11s 11s -47ms
nodeModulesSize 67.1 MB 67.1 MB ⚠️ +537 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.js gzip 6.51 kB 6.54 kB ⚠️ +35 B
webpack-HASH.js gzip 751 B 751 B
19b7e98f51cc..2bd7.js gzip 10.7 kB 10.7 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57.1 kB 57.2 kB ⚠️ +35 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.module.js gzip 5.59 kB 5.62 kB ⚠️ +30 B
webpack-HASH..dule.js gzip 751 B 751 B
19b7e98f51cc..dule.js gzip 7.1 kB 7.1 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.6 kB 52.6 kB ⚠️ +30 B
Legacy Client Bundles (polyfills)
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Build Manifests
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
_buildManifest.js gzip 268 B 268 B
_buildManife..dule.js gzip 272 B 272 B
Overall change 540 B 540 B
Serverless bundles
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
_error.js 875 kB 875 kB
404.html 4.17 kB 4.17 kB
hooks.html 3.79 kB 3.79 kB
index.js 876 kB 876 kB
link.js 916 kB 916 kB
routerDirect.js 908 kB 908 kB
withRouter.js 908 kB 908 kB
Overall change 4.49 MB 4.49 MB
Commit: d532328

packages/next/client/page-loader.js Outdated Show resolved Hide resolved
@ijjk
Copy link
Member

ijjk commented Jun 30, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
buildDuration 11.7s 11.6s -93ms
nodeModulesSize 66 MB 66 MB ⚠️ +548 B
Page Load Tests Overall increase ✓
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
/ failed reqs 0 0
/ total time (seconds) 1.935 1.929 -0.01
/ avg req/sec 1292.32 1296.18 +3.86
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.204 1.136 -0.07
/error-in-render avg req/sec 2075.75 2200.84 +125.09
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.js gzip 6.59 kB 6.62 kB ⚠️ +34 B
webpack-HASH.js gzip 751 B 751 B
19b7e98f51cc..769f.js gzip 10.7 kB 10.7 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57.2 kB 57.2 kB ⚠️ +34 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.module.js gzip 5.68 kB 5.71 kB ⚠️ +32 B
webpack-HASH..dule.js gzip 751 B 751 B
19b7e98f51cc..dule.js gzip 7.09 kB 7.09 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.7 kB 52.7 kB ⚠️ +32 B
Legacy Client Bundles (polyfills)
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Build Manifests
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
_buildManifest.js gzip 268 B 268 B
_buildManife..dule.js gzip 272 B 272 B
Overall change 540 B 540 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
index.html gzip 951 B 953 B ⚠️ +2 B
link.html gzip 960 B 960 B
withRouter.html gzip 943 B 944 B ⚠️ +1 B
Overall change 2.85 kB 2.86 kB ⚠️ +3 B

Diffs

Diff for main-HASH.js
@@ -1489,6 +1489,12 @@ _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) {
@@ -1684,7 +1690,7 @@ _N_E = (window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([
 
               var route = normalizeRoute(hrefPathname);
               return this.promisedSsgManifest.then(function(s, _dataHref) {
-                return (
+                requestIdleCallback(function() {
                   // 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)
@@ -1693,8 +1699,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-HASH.module.js
@@ -1130,6 +1130,12 @@
           : // 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) {
@@ -1295,11 +1301,9 @@
         prefetchData(href, asPath) {
           var { pathname: hrefPathname } = (0, _url.parse)(href, true);
           var route = normalizeRoute(hrefPathname);
-          return this.promisedSsgManifest.then(
-            (
-              s,
-              _dataHref // Check if the route requires a data file
-            ) =>
+          return this.promisedSsgManifest.then((s, _dataHref) => {
+            requestIdleCallback(() => {
+              // 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(
@@ -1307,8 +1311,9 @@
                   .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 index.html
@@ -6,7 +6,7 @@
     <meta name="next-head-count" content="2" />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-6d0e6246d9042c905f7a.module.js"
+      href="/_next/static/runtime/main-b8eee13f6fe3bb150e1e.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -81,13 +81,13 @@
       src="/_next/static/runtime/polyfills-e77205bd3f87781c0279.js"
     ></script>
     <script
-      src="/_next/static/runtime/main-398edecacd4138fbaca6.js"
+      src="/_next/static/runtime/main-677fc23c7100e8cf1580.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/runtime/main-6d0e6246d9042c905f7a.module.js"
+      src="/_next/static/runtime/main-b8eee13f6fe3bb150e1e.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/runtime/main-6d0e6246d9042c905f7a.module.js"
+      href="/_next/static/runtime/main-b8eee13f6fe3bb150e1e.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -86,13 +86,13 @@
       src="/_next/static/runtime/polyfills-e77205bd3f87781c0279.js"
     ></script>
     <script
-      src="/_next/static/runtime/main-398edecacd4138fbaca6.js"
+      src="/_next/static/runtime/main-677fc23c7100e8cf1580.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/runtime/main-6d0e6246d9042c905f7a.module.js"
+      src="/_next/static/runtime/main-b8eee13f6fe3bb150e1e.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/runtime/main-6d0e6246d9042c905f7a.module.js"
+      href="/_next/static/runtime/main-b8eee13f6fe3bb150e1e.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -81,13 +81,13 @@
       src="/_next/static/runtime/polyfills-e77205bd3f87781c0279.js"
     ></script>
     <script
-      src="/_next/static/runtime/main-398edecacd4138fbaca6.js"
+      src="/_next/static/runtime/main-677fc23c7100e8cf1580.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/runtime/main-6d0e6246d9042c905f7a.module.js"
+      src="/_next/static/runtime/main-b8eee13f6fe3bb150e1e.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
buildDuration 12.6s 16.4s ⚠️ +3.8s
nodeModulesSize 66 MB 66 MB ⚠️ +548 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.js gzip 6.59 kB 6.62 kB ⚠️ +34 B
webpack-HASH.js gzip 751 B 751 B
19b7e98f51cc..769f.js gzip 10.7 kB 10.7 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 57.2 kB 57.2 kB ⚠️ +34 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
main-HASH.module.js gzip 5.68 kB 5.71 kB ⚠️ +32 B
webpack-HASH..dule.js gzip 751 B 751 B
19b7e98f51cc..dule.js gzip 7.09 kB 7.09 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 52.7 kB 52.7 kB ⚠️ +32 B
Legacy Client Bundles (polyfills)
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Build Manifests
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
_buildManifest.js gzip 268 B 268 B
_buildManife..dule.js gzip 272 B 272 B
Overall change 540 B 540 B
Serverless bundles
vercel/next.js canary MLH-Fellowship/next.js arsalan/14463 Change
_error.js 875 kB 875 kB
404.html 4.17 kB 4.17 kB
hooks.html 3.79 kB 3.79 kB
index.js 876 kB 876 kB
link.js 915 kB 915 kB
routerDirect.js 907 kB 907 kB
withRouter.js 907 kB 907 kB
Overall change 4.49 MB 4.49 MB
Commit: aa37965

@khattakdev khattakdev requested a review from Timer June 30, 2020 09:13
@timneutkens timneutkens merged commit edbb32c into vercel:canary Jul 28, 2020
@timneutkens timneutkens deleted the arsalan/14463 branch July 28, 2020 11:13
Timer added a commit to Timer/next.js that referenced this pull request Sep 1, 2020
@Timer Timer mentioned this pull request Sep 1, 2020
Timer added a commit that referenced this pull request Sep 1, 2020
LauraBeatris pushed a commit to LauraBeatris/next.js that referenced this pull request Sep 1, 2020
ijjk pushed a commit to ijjk/next.js that referenced this pull request Sep 2, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Next.js prefetching should use requestIdleCallback
4 participants