-
Notifications
You must be signed in to change notification settings - Fork 26.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add unstable_onPerformanceData
helper for performance entries
#8480
Conversation
prateekbh
commented
Aug 22, 2019
- fixes [RFC] Send client side performance data to user land code. #8395
- adds a way to discover all exports from a page
- adds an integration test for the same
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 22s | 23.3s | |
nodeModulesSize | 41.2 MB | 41.2 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 19.1 kB | |
main-HASH.js gzip | 6.63 kB | 6.81 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.36 kB | 6.52 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.88 kB | |
_app.js gzip | 884 B | 913 B | |
_error.js | 12.1 kB | 12.2 kB | |
_error.js gzip | 4.76 kB | 4.78 kB | |
hooks.js | 12.7 kB | 12.8 kB | |
hooks.js gzip | 4.81 kB | 4.83 kB | |
index.js | 343 B | 391 B | |
index.js gzip | 237 B | 264 B | |
link.js | 8.14 kB | 8.18 kB | |
link.js gzip | 3.49 kB | 3.51 kB | |
routerDirect.js | 433 B | 481 B | |
routerDirect.js gzip | 296 B | 325 B | |
withRouter.js | 444 B | 492 B | |
withRouter.js gzip | 294 B | 322 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.77 kB | |
_app.module.js gzip | 840 B | 869 B | |
_error.module.js | 23.3 kB | 23.4 kB | |
_error.module.js gzip | 8.62 kB | 8.65 kB | |
hooks.module.js | 1.55 kB | 1.59 kB | |
hooks.module.js gzip | 804 B | 826 B | |
index.module.js | 319 B | 363 B | |
index.module.js gzip | 238 B | 265 B | |
link.module.js | 8.52 kB | 8.57 kB | |
link.module.js gzip | 3.68 kB | 3.7 kB | |
routerDirect.module.js | 419 B | 463 B | |
routerDirect.module.js gzip | 294 B | 323 B | |
withRouter.module.js | 429 B | 473 B | |
withRouter.module.js gzip | 293 B | 322 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Fetched pages Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
link | 3.75 kB | 3.74 kB | -1 B |
link gzip | 963 B | 961 B | -2 B |
index | 3.69 kB | 3.69 kB | -1 B |
index gzip | 954 B | 953 B | -1 B |
withRouter | 3.75 kB | 3.75 kB | -1 B |
withRouter gzip | 950 B | 948 B | -2 B |
Overall change | -3 B |
Diffs
Diff for main-HASH.js
@@ -385,7 +385,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, perfDataRelayer;
var Container =
/*#__PURE__*/
@@ -458,7 +458,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, pageExports, app, initialErr, _require, isValidElementType, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -469,52 +469,60 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ pageExports = _ref3.pageExports;
+ app = _ref3.page;
+ App = app;
+
+ if (pageExports && pageExports.relayPerformanceData) {
+ perfDataRelayer = pageExports.relayPerformanceData;
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
+ case 26:
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -545,12 +553,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 30:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -713,6 +721,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom["default"].render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -721,6 +743,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -736,16 +776,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1477,13 +1531,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (value) {
+ return value ? value.page : value;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ pageExports = _ref.pageExports;
_this3.pageRegisterEvents.off(route, fire);
@@ -1492,7 +1554,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ pageExports: pageExports
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1501,8 +1566,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ pageExports = cachedPage.pageExports;
+ error ? reject(error) : resolve({
+ page: page,
+ pageExports: pageExports
+ });
return;
} // Register a listener to get the page
@@ -1597,16 +1666,19 @@ function () {
try {
var _regFn = regFn(),
error = _regFn.error,
- page = _regFn.page;
+ page = _regFn.page,
+ pageExports = _regFn.pageExports;
_this5.pageCache[route] = {
error: error,
- page: page
+ page: page,
+ pageExports: pageExports
};
_this5.pageRegisterEvents.emit(route, {
error: error,
- page: page
+ page: page,
+ pageExports: pageExports
});
} catch (error) {
_this5.pageCache[route] = {
Diff for main-HASH.module.js
@@ -456,7 +456,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, perfDataRelayer;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -514,7 +514,16 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ pageExports,
+ page: app
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (pageExports && pageExports.relayPerformanceData) {
+ perfDataRelayer = pageExports.relayPerformanceData;
+ }
+
let initialErr = err;
try {
@@ -655,6 +664,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom.default.render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -663,6 +686,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -678,16 +719,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1378,12 +1433,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(value => value ? value.page : value);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ pageExports
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1391,7 +1451,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ pageExports
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1401,9 +1464,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ pageExports
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ pageExports
+ });
return;
} // Register a listener to get the page
@@ -1473,15 +1540,18 @@ class PageLoader {
try {
const {
error,
- page
+ page,
+ pageExports
} = regFn();
this.pageCache[route] = {
error,
- page
+ page,
+ pageExports
};
this.pageRegisterEvents.emit(route, {
error,
- page
+ page,
+ pageExports
});
} catch (error) {
this.pageCache[route] = {
Diff for _app.js
@@ -194,7 +194,14 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for _error.js
@@ -144,7 +144,14 @@ var styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for hooks.js
@@ -996,7 +996,14 @@ module.exports = __webpack_require__("jmDH") ? Object.defineProperties : functio
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for index.js
@@ -24,7 +24,14 @@ Page.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for link.js
@@ -169,7 +169,14 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for routerDirect.js
@@ -7,7 +7,14 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for withRouter.js
@@ -32,7 +32,14 @@ useWithRouter.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for _app.module.js
@@ -199,7 +199,14 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for _error.module.js
@@ -123,7 +123,14 @@ const styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for hooks.module.js
@@ -135,7 +135,14 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for index.module.js
@@ -20,7 +20,14 @@ Page.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for link.module.js
@@ -227,7 +227,14 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for routerDirect.module.js
@@ -7,7 +7,14 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for withRouter.module.js
@@ -30,7 +30,14 @@ useWithRouter.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 24.5s | 24.5s | |
nodeModulesSize | 41.2 MB | 41.2 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 19.1 kB | |
main-HASH.js gzip | 6.63 kB | 6.81 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.36 kB | 6.52 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.88 kB | |
_app.js gzip | 884 B | 913 B | |
_error.js | 12.1 kB | 12.2 kB | |
_error.js gzip | 4.76 kB | 4.78 kB | |
hooks.js | 12.7 kB | 12.8 kB | |
hooks.js gzip | 4.81 kB | 4.83 kB | |
index.js | 343 B | 391 B | |
index.js gzip | 237 B | 264 B | |
link.js | 8.14 kB | 8.18 kB | |
link.js gzip | 3.49 kB | 3.51 kB | |
routerDirect.js | 433 B | 481 B | |
routerDirect.js gzip | 296 B | 325 B | |
withRouter.js | 444 B | 492 B | |
withRouter.js gzip | 294 B | 322 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.77 kB | |
_app.module.js gzip | 840 B | 869 B | |
_error.module.js | 23.3 kB | 23.4 kB | |
_error.module.js gzip | 8.62 kB | 8.65 kB | |
hooks.module.js | 1.55 kB | 1.59 kB | |
hooks.module.js gzip | 804 B | 826 B | |
index.module.js | 319 B | 363 B | |
index.module.js gzip | 238 B | 265 B | |
link.module.js | 8.52 kB | 8.57 kB | |
link.module.js gzip | 3.68 kB | 3.7 kB | |
routerDirect.module.js | 419 B | 463 B | |
routerDirect.module.js gzip | 294 B | 323 B | |
withRouter.module.js | 429 B | 473 B | |
withRouter.module.js gzip | 293 B | 322 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | |
_error.js gzip | 66.3 kB | 66.3 kB | -66 B |
hooks.html | 3.81 kB | 3.81 kB | |
hooks.html gzip | 981 B | 979 B | -2 B |
index.js | 248 kB | 248 kB | ✓ |
index.js gzip | 66.7 kB | 66.6 kB | -117 B |
link.js | 255 kB | 255 kB | ✓ |
link.js gzip | 68.9 kB | 68.9 kB | -2 B |
routerDirect.js | 249 kB | 249 kB | ✓ |
routerDirect.js gzip | 66.7 kB | 66.6 kB | -53 B |
withRouter.js | 248 kB | 248 kB | ✓ |
withRouter.js gzip | 66.7 kB | 66.7 kB | |
Overall change |
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 22.9s | 23.4s | |
nodeModulesSize | 41.2 MB | 41.2 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 19.1 kB | |
main-HASH.js gzip | 6.63 kB | 6.81 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.36 kB | 6.52 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.88 kB | |
_app.js gzip | 884 B | 913 B | |
_error.js | 12.1 kB | 12.2 kB | |
_error.js gzip | 4.76 kB | 4.78 kB | |
hooks.js | 12.7 kB | 12.8 kB | |
hooks.js gzip | 4.81 kB | 4.83 kB | |
index.js | 343 B | 391 B | |
index.js gzip | 237 B | 264 B | |
link.js | 8.14 kB | 8.18 kB | |
link.js gzip | 3.49 kB | 3.51 kB | |
routerDirect.js | 433 B | 481 B | |
routerDirect.js gzip | 296 B | 325 B | |
withRouter.js | 444 B | 492 B | |
withRouter.js gzip | 294 B | 322 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.77 kB | |
_app.module.js gzip | 840 B | 869 B | |
_error.module.js | 23.3 kB | 23.4 kB | |
_error.module.js gzip | 8.62 kB | 8.65 kB | |
hooks.module.js | 1.55 kB | 1.59 kB | |
hooks.module.js gzip | 804 B | 826 B | |
index.module.js | 319 B | 363 B | |
index.module.js gzip | 238 B | 265 B | |
link.module.js | 8.52 kB | 8.57 kB | |
link.module.js gzip | 3.68 kB | 3.7 kB | |
routerDirect.module.js | 419 B | 463 B | |
routerDirect.module.js gzip | 294 B | 323 B | |
withRouter.module.js | 429 B | 473 B | |
withRouter.module.js gzip | 293 B | 322 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Fetched pages Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
link | 3.75 kB | 3.74 kB | -1 B |
link gzip | 963 B | 964 B | |
index | 3.69 kB | 3.69 kB | -1 B |
index gzip | 956 B | 955 B | -1 B |
withRouter | 3.75 kB | 3.75 kB | -1 B |
withRouter gzip | 950 B | 950 B | ✓ |
Overall change | -3 B |
Diffs
Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
/***/ "/h46":
/***/ (function(module, exports, __webpack_require__) {
@@ -385,7 +385,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, perfDataRelayer;
var Container =
/*#__PURE__*/
@@ -458,7 +458,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, pageExports, app, initialErr, _require, isValidElementType, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -469,52 +469,60 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ pageExports = _ref3.pageExports;
+ app = _ref3.page;
+ App = app;
+
+ if (pageExports && pageExports.relayPerformanceData) {
+ perfDataRelayer = pageExports.relayPerformanceData;
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
+ case 26:
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -545,12 +553,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 30:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -713,6 +721,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom["default"].render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -721,6 +743,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -736,16 +776,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1477,13 +1531,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (value) {
+ return value ? value.page : value;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ pageExports = _ref.pageExports;
_this3.pageRegisterEvents.off(route, fire);
@@ -1492,7 +1554,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ pageExports: pageExports
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1501,8 +1566,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ pageExports = cachedPage.pageExports;
+ error ? reject(error) : resolve({
+ page: page,
+ pageExports: pageExports
+ });
return;
} // Register a listener to get the page
@@ -1597,16 +1666,19 @@ function () {
try {
var _regFn = regFn(),
error = _regFn.error,
- page = _regFn.page;
+ page = _regFn.page,
+ pageExports = _regFn.pageExports;
_this5.pageCache[route] = {
error: error,
- page: page
+ page: page,
+ pageExports: pageExports
};
_this5.pageRegisterEvents.emit(route, {
error: error,
- page: page
+ page: page,
+ pageExports: pageExports
});
} catch (error) {
_this5.pageCache[route] = {
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[3],{
/***/ "+oT+":
/***/ (function(module, exports, __webpack_require__) {
@@ -456,7 +456,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, perfDataRelayer;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -514,7 +514,16 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ pageExports,
+ page: app
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (pageExports && pageExports.relayPerformanceData) {
+ perfDataRelayer = pageExports.relayPerformanceData;
+ }
+
let initialErr = err;
try {
@@ -655,6 +664,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom.default.render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -663,6 +686,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -678,16 +719,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1378,12 +1433,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(value => value ? value.page : value);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ pageExports
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1391,7 +1451,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ pageExports
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1401,9 +1464,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ pageExports
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ pageExports
+ });
return;
} // Register a listener to get the page
@@ -1473,15 +1540,18 @@ class PageLoader {
try {
const {
error,
- page
+ page,
+ pageExports
} = regFn();
this.pageCache[route] = {
error,
- page
+ page,
+ pageExports
};
this.pageRegisterEvents.emit(route, {
error,
- page
+ page,
+ pageExports
});
} catch (error) {
this.pageCache[route] = {
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
/***/ "B5Ud":
/***/ (function(module, exports, __webpack_require__) {
@@ -194,7 +194,14 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
/***/ "+iuc":
/***/ (function(module, exports, __webpack_require__) {
@@ -144,7 +144,14 @@ var styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for hooks.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
/***/ "+MDD":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -996,7 +996,14 @@ module.exports = __webpack_require__("jmDH") ? Object.defineProperties : functio
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
/***/ "RNiq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -24,7 +24,14 @@ Page.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
/***/ "/h46":
/***/ (function(module, exports, __webpack_require__) {
@@ -169,7 +169,14 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
/***/ "LtRI":
/***/ (function(module, exports, __webpack_require__) {
@@ -7,7 +7,14 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
/***/ "0Hlz":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -32,7 +32,14 @@ useWithRouter.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[3],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
/***/ "+oT+":
/***/ (function(module, exports, __webpack_require__) {
@@ -199,7 +199,14 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
/***/ "+iuc":
/***/ (function(module, exports, __webpack_require__) {
@@ -123,7 +123,14 @@ const styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for hooks.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
/***/ "+MDD":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -135,7 +135,14 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
/***/ "RNiq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -20,7 +20,14 @@ Page.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
/***/ "/h46":
/***/ (function(module, exports, __webpack_require__) {
@@ -227,7 +227,14 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
/***/ "LtRI":
/***/ (function(module, exports, __webpack_require__) {
@@ -7,7 +7,14 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
/***/ "0Hlz":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -30,7 +30,14 @@ useWithRouter.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 25.1s | 25.4s | |
nodeModulesSize | 41.2 MB | 41.2 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 19.1 kB | |
main-HASH.js gzip | 6.63 kB | 6.81 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.36 kB | 6.52 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.88 kB | |
_app.js gzip | 884 B | 913 B | |
_error.js | 12.1 kB | 12.2 kB | |
_error.js gzip | 4.76 kB | 4.78 kB | |
hooks.js | 12.7 kB | 12.8 kB | |
hooks.js gzip | 4.81 kB | 4.83 kB | |
index.js | 343 B | 391 B | |
index.js gzip | 237 B | 264 B | |
link.js | 8.14 kB | 8.18 kB | |
link.js gzip | 3.49 kB | 3.51 kB | |
routerDirect.js | 433 B | 482 B | |
routerDirect.js gzip | 296 B | 325 B | |
withRouter.js | 444 B | 492 B | |
withRouter.js gzip | 294 B | 322 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.77 kB | |
_app.module.js gzip | 840 B | 869 B | |
_error.module.js | 23.3 kB | 23.4 kB | |
_error.module.js gzip | 8.62 kB | 8.65 kB | |
hooks.module.js | 1.55 kB | 1.59 kB | |
hooks.module.js gzip | 804 B | 827 B | |
index.module.js | 319 B | 363 B | |
index.module.js gzip | 238 B | 265 B | |
link.module.js | 8.52 kB | 8.57 kB | |
link.module.js gzip | 3.68 kB | 3.7 kB | |
routerDirect.module.js | 419 B | 463 B | |
routerDirect.module.js gzip | 294 B | 323 B | |
withRouter.module.js | 429 B | 474 B | |
withRouter.module.js gzip | 293 B | 322 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Serverless bundles Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | -13 B |
_error.js gzip | 66.2 kB | 66.3 kB | |
hooks.html | 3.81 kB | 3.81 kB | -4 B |
hooks.html gzip | 979 B | 976 B | -3 B |
index.js | 248 kB | 248 kB | -13 B |
index.js gzip | 66.6 kB | 66.7 kB | |
link.js | 255 kB | 255 kB | -13 B |
link.js gzip | 68.9 kB | 68.8 kB | -130 B |
routerDirect.js | 249 kB | 249 kB | -13 B |
routerDirect.js gzip | 66.6 kB | 66.7 kB | |
withRouter.js | 248 kB | 248 kB | -13 B |
withRouter.js gzip | 66.7 kB | 66.7 kB | -4 B |
Overall change | -69 B |
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 21.2s | 22.7s | |
nodeModulesSize | 41.3 MB | 41.3 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 19.2 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.37 kB | 6.54 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.88 kB | |
_app.js gzip | 884 B | 913 B | |
_error.js | 12.1 kB | 12.2 kB | |
_error.js gzip | 4.76 kB | 4.78 kB | |
hooks.js | 12.7 kB | 12.8 kB | |
hooks.js gzip | 4.81 kB | 4.83 kB | |
index.js | 343 B | 391 B | |
index.js gzip | 237 B | 264 B | |
link.js | 8.14 kB | 8.18 kB | |
link.js gzip | 3.49 kB | 3.51 kB | |
routerDirect.js | 433 B | 481 B | |
routerDirect.js gzip | 296 B | 325 B | |
withRouter.js | 444 B | 492 B | |
withRouter.js gzip | 294 B | 322 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.77 kB | |
_app.module.js gzip | 840 B | 869 B | |
_error.module.js | 23.3 kB | 23.4 kB | |
_error.module.js gzip | 8.62 kB | 8.65 kB | |
hooks.module.js | 1.55 kB | 1.59 kB | |
hooks.module.js gzip | 804 B | 826 B | |
index.module.js | 319 B | 363 B | |
index.module.js gzip | 238 B | 265 B | |
link.module.js | 8.52 kB | 8.57 kB | |
link.module.js gzip | 3.68 kB | 3.7 kB | |
routerDirect.module.js | 419 B | 463 B | |
routerDirect.module.js gzip | 294 B | 323 B | |
withRouter.module.js | 429 B | 473 B | |
withRouter.module.js gzip | 293 B | 322 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Rendered Page Sizes Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
index.html | 3.7 kB | 3.7 kB | -1 B |
index.html gzip | 958 B | 957 B | -1 B |
link.html | 3.75 kB | 3.74 kB | -1 B |
link.html gzip | 966 B | 965 B | -1 B |
withRouter.html | 3.75 kB | 3.75 kB | -1 B |
withRouter.html gzip | 953 B | 952 B | -1 B |
Overall change | -3 B |
Diffs
Diff for main-HASH.js
@@ -387,7 +387,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, perfDataRelayer;
var Container =
/*#__PURE__*/
@@ -460,7 +460,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, pageExports, app, initialErr, _require, isValidElementType, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -471,52 +471,60 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ pageExports = _ref3.pageExports;
+ app = _ref3.page;
+ App = app;
+
+ if (pageExports && pageExports.relayPerformanceData) {
+ perfDataRelayer = pageExports.relayPerformanceData;
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
+ case 26:
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -547,12 +555,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 30:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -715,6 +723,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom["default"].render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -723,6 +745,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -738,16 +778,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1479,13 +1533,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (value) {
+ return value ? value.page : value;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ pageExports = _ref.pageExports;
_this3.pageRegisterEvents.off(route, fire);
@@ -1494,7 +1556,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ pageExports: pageExports
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1503,8 +1568,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ pageExports = cachedPage.pageExports;
+ error ? reject(error) : resolve({
+ page: page,
+ pageExports: pageExports
+ });
return;
} // Register a listener to get the page
@@ -1599,16 +1668,19 @@ function () {
try {
var _regFn = regFn(),
error = _regFn.error,
- page = _regFn.page;
+ page = _regFn.page,
+ pageExports = _regFn.pageExports;
_this5.pageCache[route] = {
error: error,
- page: page
+ page: page,
+ pageExports: pageExports
};
_this5.pageRegisterEvents.emit(route, {
error: error,
- page: page
+ page: page,
+ pageExports: pageExports
});
} catch (error) {
_this5.pageCache[route] = {
Diff for main-HASH.module.js
@@ -458,7 +458,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, perfDataRelayer;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -516,7 +516,16 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ pageExports,
+ page: app
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (pageExports && pageExports.relayPerformanceData) {
+ perfDataRelayer = pageExports.relayPerformanceData;
+ }
+
let initialErr = err;
try {
@@ -657,6 +666,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom.default.render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -665,6 +688,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -680,16 +721,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1380,12 +1435,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(value => value ? value.page : value);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ pageExports
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1393,7 +1453,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ pageExports
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1403,9 +1466,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ pageExports
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ pageExports
+ });
return;
} // Register a listener to get the page
@@ -1475,15 +1542,18 @@ class PageLoader {
try {
const {
error,
- page
+ page,
+ pageExports
} = regFn();
this.pageCache[route] = {
error,
- page
+ page,
+ pageExports
};
this.pageRegisterEvents.emit(route, {
error,
- page
+ page,
+ pageExports
});
} catch (error) {
this.pageCache[route] = {
Diff for _app.js
@@ -194,7 +194,14 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for _error.js
@@ -144,7 +144,14 @@ var styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for hooks.js
@@ -996,7 +996,14 @@ module.exports = __webpack_require__("jmDH") ? Object.defineProperties : functio
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for index.js
@@ -24,7 +24,14 @@ Page.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for link.js
@@ -169,7 +169,14 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for routerDirect.js
@@ -7,7 +7,14 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for withRouter.js
@@ -32,7 +32,14 @@ useWithRouter.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for _app.module.js
@@ -199,7 +199,14 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for _error.module.js
@@ -123,7 +123,14 @@ const styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for hooks.module.js
@@ -135,7 +135,14 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for index.module.js
@@ -20,7 +20,14 @@ Page.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for link.module.js
@@ -227,7 +227,14 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for routerDirect.module.js
@@ -7,7 +7,14 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for withRouter.module.js
@@ -30,7 +30,14 @@ useWithRouter.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for index.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/index.module.js"
+ <link rel="preload" href="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/index.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-6a9256f9bf0c4935aaa0.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/sLguUO4qDi9z2xjLkRJoRxTj5c=.72ab6ea1ebeafbd8c735.module.js"
+ <link rel="preload" href="/_next/static/chunks/2k7dqw7KDRig9NpaRCwLPvBUBco=.72ab6ea1ebeafbd8c735.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/7Yox49E87YeXbpGJ4lFVy/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/UlJzb7EwBRmzVsewWlDRV/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -26,40 +26,40 @@
<div id="__next">Hello world 👋</div>
<script id="__NEXT_DATA__" type="application/json"
crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"7Yox49E87YeXbpGJ4lFVy"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"UlJzb7EwBRmzVsewWlDRV"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/" src="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/index.js"
+ <script async="" data-next-page="/" src="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/index.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/" src="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/index.module.js"
+ <script async="" data-next-page="/" src="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/index.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-97617d800ec2b207a20a.js"
+ <script src="/_next/static/runtime/main-4d07c17b2b85ef06f063.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
+ <script src="/_next/static/runtime/main-6a9256f9bf0c4935aaa0.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/O4NQ5Fi2RhXN4bpZ7JTJhVZzWE=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/Q1hCmAE9DplYmWNKldrvGCcml+o=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/sLguUO4qDi9z2xjLkRJoRxTj5c=.c99adde05e467047c83e.js"
+ <script src="/_next/static/chunks/2k7dqw7KDRig9NpaRCwLPvBUBco=.c99adde05e467047c83e.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/sLguUO4qDi9z2xjLkRJoRxTj5c=.72ab6ea1ebeafbd8c735.module.js"
+ <script src="/_next/static/chunks/2k7dqw7KDRig9NpaRCwLPvBUBco=.72ab6ea1ebeafbd8c735.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/7Yox49E87YeXbpGJ4lFVy/_buildManifest.js"
+ <script src="/_next/static/UlJzb7EwBRmzVsewWlDRV/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/7Yox49E87YeXbpGJ4lFVy/_buildManifest.module.js"
+ <script src="/_next/static/UlJzb7EwBRmzVsewWlDRV/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for link.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/link.module.js"
+ <link rel="preload" href="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/link.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/sLguUO4qDi9z2xjLkRJoRxTj5c=.72ab6ea1ebeafbd8c735.module.js"
+ <link rel="preload" href="/_next/static/chunks/2k7dqw7KDRig9NpaRCwLPvBUBco=.72ab6ea1ebeafbd8c735.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-6a9256f9bf0c4935aaa0.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/7Yox49E87YeXbpGJ4lFVy/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/UlJzb7EwBRmzVsewWlDRV/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -29,18 +29,18 @@
</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"7Yox49E87YeXbpGJ4lFVy"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"UlJzb7EwBRmzVsewWlDRV"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/link" src="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/link.js"
+ <script async="" data-next-page="/link" src="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/link.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/link" src="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/link.module.js"
+ <script async="" data-next-page="/link" src="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/link.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -50,19 +50,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/O4NQ5Fi2RhXN4bpZ7JTJhVZzWE=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/Q1hCmAE9DplYmWNKldrvGCcml+o=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/sLguUO4qDi9z2xjLkRJoRxTj5c=.c99adde05e467047c83e.js"
+ <script src="/_next/static/chunks/2k7dqw7KDRig9NpaRCwLPvBUBco=.c99adde05e467047c83e.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/sLguUO4qDi9z2xjLkRJoRxTj5c=.72ab6ea1ebeafbd8c735.module.js"
+ <script src="/_next/static/chunks/2k7dqw7KDRig9NpaRCwLPvBUBco=.72ab6ea1ebeafbd8c735.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-97617d800ec2b207a20a.js"
+ <script src="/_next/static/runtime/main-4d07c17b2b85ef06f063.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
+ <script src="/_next/static/runtime/main-6a9256f9bf0c4935aaa0.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/7Yox49E87YeXbpGJ4lFVy/_buildManifest.js"
+ <script src="/_next/static/UlJzb7EwBRmzVsewWlDRV/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/7Yox49E87YeXbpGJ4lFVy/_buildManifest.module.js"
+ <script src="/_next/static/UlJzb7EwBRmzVsewWlDRV/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for withRouter.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/withRouter.module.js"
+ <link rel="preload" href="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/withRouter.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/sLguUO4qDi9z2xjLkRJoRxTj5c=.72ab6ea1ebeafbd8c735.module.js"
+ <link rel="preload" href="/_next/static/chunks/2k7dqw7KDRig9NpaRCwLPvBUBco=.72ab6ea1ebeafbd8c735.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-6a9256f9bf0c4935aaa0.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/7Yox49E87YeXbpGJ4lFVy/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/UlJzb7EwBRmzVsewWlDRV/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -27,18 +27,18 @@
<div>I use withRouter</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"7Yox49E87YeXbpGJ4lFVy"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"UlJzb7EwBRmzVsewWlDRV"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/withRouter" src="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/withRouter.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/withRouter.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/withRouter" src="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/withRouter.module.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/withRouter.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/7Yox49E87YeXbpGJ4lFVy/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/UlJzb7EwBRmzVsewWlDRV/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -48,19 +48,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/O4NQ5Fi2RhXN4bpZ7JTJhVZzWE=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/Q1hCmAE9DplYmWNKldrvGCcml+o=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/sLguUO4qDi9z2xjLkRJoRxTj5c=.c99adde05e467047c83e.js"
+ <script src="/_next/static/chunks/2k7dqw7KDRig9NpaRCwLPvBUBco=.c99adde05e467047c83e.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/sLguUO4qDi9z2xjLkRJoRxTj5c=.72ab6ea1ebeafbd8c735.module.js"
+ <script src="/_next/static/chunks/2k7dqw7KDRig9NpaRCwLPvBUBco=.72ab6ea1ebeafbd8c735.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-97617d800ec2b207a20a.js"
+ <script src="/_next/static/runtime/main-4d07c17b2b85ef06f063.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
+ <script src="/_next/static/runtime/main-6a9256f9bf0c4935aaa0.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/7Yox49E87YeXbpGJ4lFVy/_buildManifest.js"
+ <script src="/_next/static/UlJzb7EwBRmzVsewWlDRV/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/7Yox49E87YeXbpGJ4lFVy/_buildManifest.module.js"
+ <script src="/_next/static/UlJzb7EwBRmzVsewWlDRV/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 23.2s | 22.9s | -250ms |
nodeModulesSize | 41.3 MB | 41.3 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 19.2 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.37 kB | 6.54 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.88 kB | |
_app.js gzip | 884 B | 913 B | |
_error.js | 12.1 kB | 12.2 kB | |
_error.js gzip | 4.76 kB | 4.78 kB | |
hooks.js | 12.7 kB | 12.8 kB | |
hooks.js gzip | 4.81 kB | 4.83 kB | |
index.js | 343 B | 391 B | |
index.js gzip | 237 B | 264 B | |
link.js | 8.14 kB | 8.18 kB | |
link.js gzip | 3.49 kB | 3.51 kB | |
routerDirect.js | 434 B | 481 B | |
routerDirect.js gzip | 296 B | 325 B | |
withRouter.js | 444 B | 492 B | |
withRouter.js gzip | 294 B | 322 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.77 kB | |
_app.module.js gzip | 840 B | 869 B | |
_error.module.js | 23.3 kB | 23.4 kB | |
_error.module.js gzip | 8.62 kB | 8.65 kB | |
hooks.module.js | 1.55 kB | 1.59 kB | |
hooks.module.js gzip | 805 B | 826 B | |
index.module.js | 319 B | 363 B | |
index.module.js gzip | 238 B | 265 B | |
link.module.js | 8.52 kB | 8.57 kB | |
link.module.js gzip | 3.68 kB | 3.7 kB | |
routerDirect.module.js | 419 B | 463 B | |
routerDirect.module.js gzip | 294 B | 323 B | |
withRouter.module.js | 430 B | 473 B | |
withRouter.module.js gzip | 293 B | 322 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Serverless bundles Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | -3 B |
_error.js gzip | 66.4 kB | 66.3 kB | -101 B |
hooks.html | 3.81 kB | 3.81 kB | -2 B |
hooks.html gzip | 976 B | 978 B | |
index.js | 248 kB | 248 kB | -3 B |
index.js gzip | 66.7 kB | 66.8 kB | |
link.js | 255 kB | 255 kB | -3 B |
link.js gzip | 68.9 kB | 68.8 kB | -95 B |
routerDirect.js | 249 kB | 249 kB | -3 B |
routerDirect.js gzip | 66.6 kB | 66.7 kB | |
withRouter.js | 248 kB | 248 kB | -3 B |
withRouter.js gzip | 66.7 kB | 66.8 kB | |
Overall change | -17 B |
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 26.6s | 27s | |
nodeModulesSize | 41.3 MB | 41.3 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 19.2 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.37 kB | 6.54 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.88 kB | |
_app.js gzip | 884 B | 913 B | |
_error.js | 12.1 kB | 12.2 kB | |
_error.js gzip | 4.76 kB | 4.78 kB | |
hooks.js | 12.7 kB | 12.8 kB | |
hooks.js gzip | 4.81 kB | 4.83 kB | |
index.js | 343 B | 391 B | |
index.js gzip | 237 B | 264 B | |
link.js | 8.14 kB | 8.18 kB | |
link.js gzip | 3.49 kB | 3.51 kB | |
routerDirect.js | 433 B | 481 B | |
routerDirect.js gzip | 296 B | 325 B | |
withRouter.js | 444 B | 492 B | |
withRouter.js gzip | 294 B | 322 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.77 kB | |
_app.module.js gzip | 840 B | 869 B | |
_error.module.js | 23.3 kB | 23.4 kB | |
_error.module.js gzip | 8.62 kB | 8.65 kB | |
hooks.module.js | 1.55 kB | 1.59 kB | |
hooks.module.js gzip | 804 B | 826 B | |
index.module.js | 319 B | 363 B | |
index.module.js gzip | 238 B | 265 B | |
link.module.js | 8.52 kB | 8.57 kB | |
link.module.js gzip | 3.68 kB | 3.7 kB | |
routerDirect.module.js | 419 B | 463 B | |
routerDirect.module.js gzip | 294 B | 323 B | |
withRouter.module.js | 429 B | 473 B | |
withRouter.module.js gzip | 293 B | 322 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Rendered Page Sizes
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
index.html | 3.7 kB | 3.7 kB | ✓ |
index.html gzip | 957 B | 953 B | -4 B |
link.html | 3.75 kB | 3.75 kB | ✓ |
link.html gzip | 965 B | 961 B | -4 B |
withRouter.html | 3.75 kB | 3.75 kB | ✓ |
withRouter.html gzip | 952 B | 948 B | -4 B |
Overall change | ✓ |
Diffs
Diff for main-HASH.js
@@ -387,7 +387,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, perfDataRelayer;
var Container =
/*#__PURE__*/
@@ -460,7 +460,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, pageExports, app, initialErr, _require, isValidElementType, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -471,52 +471,60 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ pageExports = _ref3.pageExports;
+ app = _ref3.page;
+ App = app;
+
+ if (pageExports && pageExports.relayPerformanceData) {
+ perfDataRelayer = pageExports.relayPerformanceData;
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
+ case 26:
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -547,12 +555,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 30:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -715,6 +723,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom["default"].render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -723,6 +745,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -738,16 +778,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1479,13 +1533,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (value) {
+ return value ? value.page : value;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ pageExports = _ref.pageExports;
_this3.pageRegisterEvents.off(route, fire);
@@ -1494,7 +1556,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ pageExports: pageExports
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1503,8 +1568,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ pageExports = cachedPage.pageExports;
+ error ? reject(error) : resolve({
+ page: page,
+ pageExports: pageExports
+ });
return;
} // Register a listener to get the page
@@ -1599,16 +1668,19 @@ function () {
try {
var _regFn = regFn(),
error = _regFn.error,
- page = _regFn.page;
+ page = _regFn.page,
+ pageExports = _regFn.pageExports;
_this5.pageCache[route] = {
error: error,
- page: page
+ page: page,
+ pageExports: pageExports
};
_this5.pageRegisterEvents.emit(route, {
error: error,
- page: page
+ page: page,
+ pageExports: pageExports
});
} catch (error) {
_this5.pageCache[route] = {
Diff for main-HASH.module.js
@@ -458,7 +458,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, perfDataRelayer;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -516,7 +516,16 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ pageExports,
+ page: app
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (pageExports && pageExports.relayPerformanceData) {
+ perfDataRelayer = pageExports.relayPerformanceData;
+ }
+
let initialErr = err;
try {
@@ -657,6 +666,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom.default.render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -665,6 +688,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -680,16 +721,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1380,12 +1435,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(value => value ? value.page : value);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ pageExports
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1393,7 +1453,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ pageExports
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1403,9 +1466,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ pageExports
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ pageExports
+ });
return;
} // Register a listener to get the page
@@ -1475,15 +1542,18 @@ class PageLoader {
try {
const {
error,
- page
+ page,
+ pageExports
} = regFn();
this.pageCache[route] = {
error,
- page
+ page,
+ pageExports
};
this.pageRegisterEvents.emit(route, {
error,
- page
+ page,
+ pageExports
});
} catch (error) {
this.pageCache[route] = {
Diff for _app.js
@@ -194,7 +194,14 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for _error.js
@@ -144,7 +144,14 @@ var styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for hooks.js
@@ -996,7 +996,14 @@ module.exports = __webpack_require__("jmDH") ? Object.defineProperties : functio
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for index.js
@@ -24,7 +24,14 @@ Page.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for link.js
@@ -169,7 +169,14 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for routerDirect.js
@@ -7,7 +7,14 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for withRouter.js
@@ -32,7 +32,14 @@ useWithRouter.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for _app.module.js
@@ -199,7 +199,14 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for _error.module.js
@@ -123,7 +123,14 @@ const styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for hooks.module.js
@@ -135,7 +135,14 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for index.module.js
@@ -20,7 +20,14 @@ Page.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for link.module.js
@@ -227,7 +227,14 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for routerDirect.module.js
@@ -7,7 +7,14 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for withRouter.module.js
@@ -30,7 +30,14 @@ useWithRouter.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ pageExports: pageExports
+ }
}]);
Diff for index.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/index.module.js"
+ <link rel="preload" href="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/index.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-6a9256f9bf0c4935aaa0.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/IVfEZatEwUVrBMNw3oJ7d4Jh2mA=.72ab6ea1ebeafbd8c735.module.js"
+ <link rel="preload" href="/_next/static/chunks/mId4z8LszexLlIfYJ0d6Bbq1mc=.72ab6ea1ebeafbd8c735.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/1IqgW4pgpQ3sNbCThb56p/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -26,40 +26,40 @@
<div id="__next">Hello world 👋</div>
<script id="__NEXT_DATA__" type="application/json"
crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"7GSwdaNyJ8fTOQmdjdfw0"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"1IqgW4pgpQ3sNbCThb56p"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/" src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/index.js"
+ <script async="" data-next-page="/" src="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/index.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/" src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/index.module.js"
+ <script async="" data-next-page="/" src="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/index.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-97617d800ec2b207a20a.js"
+ <script src="/_next/static/runtime/main-4d07c17b2b85ef06f063.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
+ <script src="/_next/static/runtime/main-6a9256f9bf0c4935aaa0.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/WSiibA5ZxHG+wvR0Umzd8riw9EM=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/xQuRKcmjvKMeyO5HfV4mDvsslVg=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/IVfEZatEwUVrBMNw3oJ7d4Jh2mA=.c99adde05e467047c83e.js"
+ <script src="/_next/static/chunks/mId4z8LszexLlIfYJ0d6Bbq1mc=.c99adde05e467047c83e.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/IVfEZatEwUVrBMNw3oJ7d4Jh2mA=.72ab6ea1ebeafbd8c735.module.js"
+ <script src="/_next/static/chunks/mId4z8LszexLlIfYJ0d6Bbq1mc=.72ab6ea1ebeafbd8c735.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/_buildManifest.js"
+ <script src="/_next/static/1IqgW4pgpQ3sNbCThb56p/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/_buildManifest.module.js"
+ <script src="/_next/static/1IqgW4pgpQ3sNbCThb56p/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for link.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/link.module.js"
+ <link rel="preload" href="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/link.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/IVfEZatEwUVrBMNw3oJ7d4Jh2mA=.72ab6ea1ebeafbd8c735.module.js"
+ <link rel="preload" href="/_next/static/chunks/mId4z8LszexLlIfYJ0d6Bbq1mc=.72ab6ea1ebeafbd8c735.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-6a9256f9bf0c4935aaa0.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/1IqgW4pgpQ3sNbCThb56p/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -29,18 +29,18 @@
</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"7GSwdaNyJ8fTOQmdjdfw0"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"1IqgW4pgpQ3sNbCThb56p"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/link" src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/link.js"
+ <script async="" data-next-page="/link" src="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/link.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/link" src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/link.module.js"
+ <script async="" data-next-page="/link" src="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/link.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -50,19 +50,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/WSiibA5ZxHG+wvR0Umzd8riw9EM=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/xQuRKcmjvKMeyO5HfV4mDvsslVg=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/IVfEZatEwUVrBMNw3oJ7d4Jh2mA=.c99adde05e467047c83e.js"
+ <script src="/_next/static/chunks/mId4z8LszexLlIfYJ0d6Bbq1mc=.c99adde05e467047c83e.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/IVfEZatEwUVrBMNw3oJ7d4Jh2mA=.72ab6ea1ebeafbd8c735.module.js"
+ <script src="/_next/static/chunks/mId4z8LszexLlIfYJ0d6Bbq1mc=.72ab6ea1ebeafbd8c735.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-97617d800ec2b207a20a.js"
+ <script src="/_next/static/runtime/main-4d07c17b2b85ef06f063.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
+ <script src="/_next/static/runtime/main-6a9256f9bf0c4935aaa0.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/_buildManifest.js"
+ <script src="/_next/static/1IqgW4pgpQ3sNbCThb56p/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/_buildManifest.module.js"
+ <script src="/_next/static/1IqgW4pgpQ3sNbCThb56p/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for withRouter.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/withRouter.module.js"
+ <link rel="preload" href="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/withRouter.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/IVfEZatEwUVrBMNw3oJ7d4Jh2mA=.72ab6ea1ebeafbd8c735.module.js"
+ <link rel="preload" href="/_next/static/chunks/mId4z8LszexLlIfYJ0d6Bbq1mc=.72ab6ea1ebeafbd8c735.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-6a9256f9bf0c4935aaa0.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/1IqgW4pgpQ3sNbCThb56p/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -27,18 +27,18 @@
<div>I use withRouter</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"7GSwdaNyJ8fTOQmdjdfw0"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"1IqgW4pgpQ3sNbCThb56p"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/withRouter" src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/withRouter.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/withRouter.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/withRouter" src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/withRouter.module.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/withRouter.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/1IqgW4pgpQ3sNbCThb56p/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -48,19 +48,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/WSiibA5ZxHG+wvR0Umzd8riw9EM=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/xQuRKcmjvKMeyO5HfV4mDvsslVg=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/IVfEZatEwUVrBMNw3oJ7d4Jh2mA=.c99adde05e467047c83e.js"
+ <script src="/_next/static/chunks/mId4z8LszexLlIfYJ0d6Bbq1mc=.c99adde05e467047c83e.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/IVfEZatEwUVrBMNw3oJ7d4Jh2mA=.72ab6ea1ebeafbd8c735.module.js"
+ <script src="/_next/static/chunks/mId4z8LszexLlIfYJ0d6Bbq1mc=.72ab6ea1ebeafbd8c735.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-97617d800ec2b207a20a.js"
+ <script src="/_next/static/runtime/main-4d07c17b2b85ef06f063.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
+ <script src="/_next/static/runtime/main-6a9256f9bf0c4935aaa0.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/_buildManifest.js"
+ <script src="/_next/static/1IqgW4pgpQ3sNbCThb56p/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/7GSwdaNyJ8fTOQmdjdfw0/_buildManifest.module.js"
+ <script src="/_next/static/1IqgW4pgpQ3sNbCThb56p/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 28.8s | 28.7s | -55ms |
nodeModulesSize | 41.3 MB | 41.3 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 19.2 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.37 kB | 6.54 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.88 kB | |
_app.js gzip | 884 B | 913 B | |
_error.js | 12.1 kB | 12.2 kB | |
_error.js gzip | 4.76 kB | 4.78 kB | |
hooks.js | 12.7 kB | 12.8 kB | |
hooks.js gzip | 4.81 kB | 4.83 kB | |
index.js | 343 B | 391 B | |
index.js gzip | 237 B | 264 B | |
link.js | 8.14 kB | 8.18 kB | |
link.js gzip | 3.49 kB | 3.51 kB | |
routerDirect.js | 434 B | 481 B | |
routerDirect.js gzip | 296 B | 325 B | |
withRouter.js | 444 B | 492 B | |
withRouter.js gzip | 294 B | 322 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.77 kB | |
_app.module.js gzip | 840 B | 869 B | |
_error.module.js | 23.3 kB | 23.4 kB | |
_error.module.js gzip | 8.62 kB | 8.65 kB | |
hooks.module.js | 1.55 kB | 1.59 kB | |
hooks.module.js gzip | 805 B | 826 B | |
index.module.js | 319 B | 363 B | |
index.module.js gzip | 238 B | 265 B | |
link.module.js | 8.52 kB | 8.57 kB | |
link.module.js gzip | 3.68 kB | 3.7 kB | |
routerDirect.module.js | 419 B | 463 B | |
routerDirect.module.js gzip | 294 B | 323 B | |
withRouter.module.js | 430 B | 473 B | |
withRouter.module.js gzip | 293 B | 322 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | |
_error.js gzip | 66.2 kB | 66.4 kB | |
hooks.html | 3.81 kB | 3.81 kB | |
hooks.html gzip | 975 B | 979 B | |
index.js | 248 kB | 248 kB | |
index.js gzip | 66.6 kB | 66.6 kB | -32 B |
link.js | 255 kB | 255 kB | |
link.js gzip | 68.9 kB | 68.7 kB | -180 B |
routerDirect.js | 249 kB | 249 kB | |
routerDirect.js gzip | 66.7 kB | 66.9 kB | |
withRouter.js | 248 kB | 248 kB | |
withRouter.js gzip | 66.8 kB | 66.8 kB | |
Overall change |
packages/next/build/webpack/loaders/next-client-pages-loader.ts
Outdated
Show resolved
Hide resolved
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 23.3s | 22.2s | -1.1s |
nodeModulesSize | 41.8 MB | 41.3 MB | -451 kB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.1 kB | |
main-HASH.js gzip | 6.64 kB | 6.82 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.3 kB | |
main-HASH.module.js gzip | 6.38 kB | 6.53 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.88 kB | |
_app.js gzip | 884 B | 909 B | |
_error.js | 12.1 kB | 12.2 kB | |
_error.js gzip | 4.76 kB | 4.78 kB | |
hooks.js | 12.7 kB | 12.8 kB | |
hooks.js gzip | 4.81 kB | 4.83 kB | |
index.js | 343 B | 383 B | |
index.js gzip | 237 B | 260 B | |
link.js | 8.14 kB | 8.18 kB | |
link.js gzip | 3.49 kB | 3.51 kB | |
routerDirect.js | 433 B | 473 B | |
routerDirect.js gzip | 296 B | 320 B | |
withRouter.js | 444 B | 484 B | |
withRouter.js gzip | 294 B | 318 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.76 kB | |
_app.module.js gzip | 840 B | 866 B | |
_error.module.js | 23.3 kB | 23.4 kB | |
_error.module.js gzip | 8.62 kB | 8.65 kB | |
hooks.module.js | 1.55 kB | 1.58 kB | |
hooks.module.js gzip | 804 B | 823 B | |
index.module.js | 319 B | 355 B | |
index.module.js gzip | 238 B | 260 B | |
link.module.js | 8.52 kB | 8.56 kB | |
link.module.js gzip | 3.68 kB | 3.69 kB | |
routerDirect.module.js | 419 B | 455 B | |
routerDirect.module.js gzip | 294 B | 316 B | |
withRouter.module.js | 429 B | 465 B | |
withRouter.module.js gzip | 293 B | 318 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Rendered Page Sizes
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
index.html | 3.7 kB | 3.7 kB | ✓ |
index.html gzip | 955 B | 956 B | |
link.html | 3.75 kB | 3.75 kB | ✓ |
link.html gzip | 964 B | 964 B | ✓ |
withRouter.html | 3.75 kB | 3.75 kB | ✓ |
withRouter.html gzip | 950 B | 952 B | |
Overall change | ✓ |
Diffs
Diff for main-HASH.js
@@ -387,7 +387,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, perfDataRelayer;
var Container =
/*#__PURE__*/
@@ -460,7 +460,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, app, mod, initialErr, _require, isValidElementType, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -471,52 +471,60 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ app = _ref3.page;
+ mod = _ref3.mod;
+ App = app;
+
+ if (mod && mod.relayPerformanceData) {
+ perfDataRelayer = mod.relayPerformanceData;
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
+ case 26:
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -547,12 +555,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 30:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -715,6 +723,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom["default"].render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -723,6 +745,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -738,16 +778,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1425,7 +1479,7 @@ function preloadScript(url) {
var link = document.createElement('link');
link.rel = 'preload';
link.crossOrigin = "anonymous";
- link.href = encodeURI(url);
+ link.href = url;
link.as = 'script';
document.head.appendChild(link);
}
@@ -1479,13 +1533,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (value) {
+ return value ? value.page : value;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ mod = _ref.mod;
_this3.pageRegisterEvents.off(route, fire);
@@ -1494,7 +1556,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ mod: mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1503,8 +1568,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ mod = cachedPage.mod;
+ error ? reject(error) : resolve({
+ page: page,
+ mod: mod
+ });
return;
} // Register a listener to get the page
@@ -1576,7 +1645,7 @@ function () {
}
script.crossOrigin = "anonymous";
- script.src = encodeURI(url);
+ script.src = url;
script.onerror = function () {
var error = new Error("Error loading script " + url);
@@ -1599,16 +1668,19 @@ function () {
try {
var _regFn = regFn(),
error = _regFn.error,
- page = _regFn.page;
+ page = _regFn.page,
+ mod = _regFn.mod;
_this5.pageCache[route] = {
error: error,
- page: page
+ page: page,
+ mod: mod
};
_this5.pageRegisterEvents.emit(route, {
error: error,
- page: page
+ page: page,
+ mod: mod
});
} catch (error) {
_this5.pageCache[route] = {
Diff for main-HASH.module.js
@@ -458,7 +458,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, perfDataRelayer;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -516,7 +516,16 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ page: app,
+ mod
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (mod && mod.relayPerformanceData) {
+ perfDataRelayer = mod.relayPerformanceData;
+ }
+
let initialErr = err;
try {
@@ -657,6 +666,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom.default.render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -665,6 +688,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -680,16 +721,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1338,7 +1393,7 @@ function preloadScript(url) {
const link = document.createElement('link');
link.rel = 'preload';
link.crossOrigin = "anonymous";
- link.href = encodeURI(url);
+ link.href = url;
link.as = 'script';
document.head.appendChild(link);
}
@@ -1380,12 +1435,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(value => value ? value.page : value);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ mod
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1393,7 +1453,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1403,9 +1466,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ mod
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ mod
+ });
return;
} // Register a listener to get the page
@@ -1456,7 +1523,7 @@ class PageLoader {
}
script.crossOrigin = "anonymous";
- script.src = encodeURI(url);
+ script.src = url;
script.onerror = () => {
const error = new Error("Error loading script " + url);
@@ -1475,15 +1542,18 @@ class PageLoader {
try {
const {
error,
- page
+ page,
+ mod
} = regFn();
this.pageCache[route] = {
error,
- page
+ page,
+ mod
};
this.pageRegisterEvents.emit(route, {
error,
- page
+ page,
+ mod
});
} catch (error) {
this.pageCache[route] = {
Diff for _app.js
@@ -194,7 +194,14 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _error.js
@@ -144,7 +144,14 @@ var styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for hooks.js
@@ -996,7 +996,14 @@ module.exports = __webpack_require__("jmDH") ? Object.defineProperties : functio
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.js
@@ -24,7 +24,14 @@ Page.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for link.js
@@ -169,7 +169,14 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for routerDirect.js
@@ -7,7 +7,14 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for withRouter.js
@@ -32,7 +32,14 @@ useWithRouter.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _app.module.js
@@ -199,7 +199,14 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _error.module.js
@@ -123,7 +123,14 @@ const styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for hooks.module.js
@@ -135,7 +135,14 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.module.js
@@ -20,7 +20,14 @@ Page.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for link.module.js
@@ -227,7 +227,14 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for routerDirect.module.js
@@ -7,7 +7,14 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for withRouter.module.js
@@ -30,7 +30,14 @@ useWithRouter.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/index.module.js"
+ <link rel="preload" href="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/index.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-8dc7e72f54ca1d9c807d.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/54gIdfmqw4xwDBR0ch1lNpkYjZI=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/fzW6nwZEuPxTmIJAPK5qcOX1nJw=.72ab6ea1ebeafbd8c735.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/5Eh1axafPSTRLD8toI8KM/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/SEeYki11nDyxdy0R5PZZw/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -26,40 +26,40 @@
<div id="__next">Hello world 👋</div>
<script id="__NEXT_DATA__" type="application/json"
crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"5Eh1axafPSTRLD8toI8KM"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"SEeYki11nDyxdy0R5PZZw"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/" src="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/index.js"
+ <script async="" data-next-page="/" src="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/index.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/" src="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/index.module.js"
+ <script async="" data-next-page="/" src="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/index.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-fdeaf1a90ba5883d457b.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-8dc7e72f54ca1d9c807d.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/G1BMzP2WDHFGOe8QjCJeB1jc+3E=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/ksfkGmrB2KrQtWUODB3GbWRek=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/54gIdfmqw4xwDBR0ch1lNpkYjZI=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/fzW6nwZEuPxTmIJAPK5qcOX1nJw=.c99adde05e467047c83e.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/54gIdfmqw4xwDBR0ch1lNpkYjZI=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/fzW6nwZEuPxTmIJAPK5qcOX1nJw=.72ab6ea1ebeafbd8c735.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/5Eh1axafPSTRLD8toI8KM/_buildManifest.js"
+ <script src="/_next/static/SEeYki11nDyxdy0R5PZZw/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/5Eh1axafPSTRLD8toI8KM/_buildManifest.module.js"
+ <script src="/_next/static/SEeYki11nDyxdy0R5PZZw/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for link.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/link.module.js"
+ <link rel="preload" href="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/link.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/54gIdfmqw4xwDBR0ch1lNpkYjZI=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/fzW6nwZEuPxTmIJAPK5qcOX1nJw=.72ab6ea1ebeafbd8c735.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-8dc7e72f54ca1d9c807d.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/5Eh1axafPSTRLD8toI8KM/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/SEeYki11nDyxdy0R5PZZw/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -29,18 +29,18 @@
</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"5Eh1axafPSTRLD8toI8KM"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"SEeYki11nDyxdy0R5PZZw"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/link" src="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/link.js"
+ <script async="" data-next-page="/link" src="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/link.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/link" src="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/link.module.js"
+ <script async="" data-next-page="/link" src="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/link.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -50,19 +50,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/G1BMzP2WDHFGOe8QjCJeB1jc+3E=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/ksfkGmrB2KrQtWUODB3GbWRek=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/54gIdfmqw4xwDBR0ch1lNpkYjZI=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/fzW6nwZEuPxTmIJAPK5qcOX1nJw=.c99adde05e467047c83e.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/54gIdfmqw4xwDBR0ch1lNpkYjZI=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/fzW6nwZEuPxTmIJAPK5qcOX1nJw=.72ab6ea1ebeafbd8c735.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-fdeaf1a90ba5883d457b.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-8dc7e72f54ca1d9c807d.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/5Eh1axafPSTRLD8toI8KM/_buildManifest.js"
+ <script src="/_next/static/SEeYki11nDyxdy0R5PZZw/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/5Eh1axafPSTRLD8toI8KM/_buildManifest.module.js"
+ <script src="/_next/static/SEeYki11nDyxdy0R5PZZw/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for withRouter.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/withRouter.module.js"
+ <link rel="preload" href="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/withRouter.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/54gIdfmqw4xwDBR0ch1lNpkYjZI=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/fzW6nwZEuPxTmIJAPK5qcOX1nJw=.72ab6ea1ebeafbd8c735.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-8dc7e72f54ca1d9c807d.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/5Eh1axafPSTRLD8toI8KM/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/SEeYki11nDyxdy0R5PZZw/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -27,18 +27,18 @@
<div>I use withRouter</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"5Eh1axafPSTRLD8toI8KM"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"SEeYki11nDyxdy0R5PZZw"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/withRouter" src="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/withRouter.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/withRouter.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/withRouter" src="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/withRouter.module.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/withRouter.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/5Eh1axafPSTRLD8toI8KM/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/SEeYki11nDyxdy0R5PZZw/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -48,19 +48,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/G1BMzP2WDHFGOe8QjCJeB1jc+3E=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/ksfkGmrB2KrQtWUODB3GbWRek=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/54gIdfmqw4xwDBR0ch1lNpkYjZI=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/fzW6nwZEuPxTmIJAPK5qcOX1nJw=.c99adde05e467047c83e.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/54gIdfmqw4xwDBR0ch1lNpkYjZI=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/fzW6nwZEuPxTmIJAPK5qcOX1nJw=.72ab6ea1ebeafbd8c735.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-fdeaf1a90ba5883d457b.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-8dc7e72f54ca1d9c807d.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/5Eh1axafPSTRLD8toI8KM/_buildManifest.js"
+ <script src="/_next/static/SEeYki11nDyxdy0R5PZZw/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/5Eh1axafPSTRLD8toI8KM/_buildManifest.module.js"
+ <script src="/_next/static/SEeYki11nDyxdy0R5PZZw/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Serverless Mode (Increase detected ⚠️ )
General Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 24s | 24.1s | |
nodeModulesSize | 41.8 MB | 41.3 MB | -451 kB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.1 kB | |
main-HASH.js gzip | 6.64 kB | 6.82 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.3 kB | |
main-HASH.module.js gzip | 6.37 kB | 6.53 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.88 kB | |
_app.js gzip | 884 B | 909 B | |
_error.js | 12.1 kB | 12.2 kB | |
_error.js gzip | 4.76 kB | 4.78 kB | |
hooks.js | 12.7 kB | 12.8 kB | |
hooks.js gzip | 4.81 kB | 4.83 kB | |
index.js | 343 B | 383 B | |
index.js gzip | 237 B | 260 B | |
link.js | 8.14 kB | 8.18 kB | |
link.js gzip | 3.49 kB | 3.51 kB | |
routerDirect.js | 434 B | 473 B | |
routerDirect.js gzip | 296 B | 320 B | |
withRouter.js | 444 B | 484 B | |
withRouter.js gzip | 294 B | 318 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.76 kB | |
_app.module.js gzip | 840 B | 866 B | |
_error.module.js | 23.3 kB | 23.4 kB | |
_error.module.js gzip | 8.62 kB | 8.65 kB | |
hooks.module.js | 1.55 kB | 1.58 kB | |
hooks.module.js gzip | 805 B | 823 B | |
index.module.js | 319 B | 355 B | |
index.module.js gzip | 238 B | 260 B | |
link.module.js | 8.52 kB | 8.56 kB | |
link.module.js gzip | 3.68 kB | 3.69 kB | |
routerDirect.module.js | 419 B | 455 B | |
routerDirect.module.js gzip | 294 B | 316 B | |
withRouter.module.js | 430 B | 465 B | |
withRouter.module.js gzip | 293 B | 318 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Serverless bundles Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | -143 B |
_error.js gzip | 66.2 kB | 66.3 kB | |
hooks.html | 3.81 kB | 3.81 kB | |
hooks.html gzip | 980 B | 980 B | ✓ |
index.js | 248 kB | 248 kB | -143 B |
index.js gzip | 66.7 kB | 66.7 kB | |
link.js | 256 kB | 255 kB | -143 B |
link.js gzip | 68.9 kB | 68.8 kB | -42 B |
routerDirect.js | 249 kB | 249 kB | -143 B |
routerDirect.js gzip | 66.8 kB | 66.6 kB | -154 B |
withRouter.js | 249 kB | 248 kB | -143 B |
withRouter.js gzip | 66.9 kB | 66.9 kB | -20 B |
Overall change | -710 B |
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 24s | 24s | -38ms |
nodeModulesSize | 41.8 MB | 41.8 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.1 kB | |
main-HASH.js gzip | 6.64 kB | 6.82 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.38 kB | 6.54 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.88 kB | |
_app.js gzip | 884 B | 909 B | |
_error.js | 12.1 kB | 12.2 kB | |
_error.js gzip | 4.76 kB | 4.78 kB | |
hooks.js | 12.7 kB | 12.8 kB | |
hooks.js gzip | 4.81 kB | 4.83 kB | |
index.js | 343 B | 383 B | |
index.js gzip | 237 B | 260 B | |
link.js | 8.14 kB | 8.18 kB | |
link.js gzip | 3.49 kB | 3.51 kB | |
routerDirect.js | 433 B | 474 B | |
routerDirect.js gzip | 296 B | 321 B | |
withRouter.js | 444 B | 484 B | |
withRouter.js gzip | 294 B | 318 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.76 kB | |
_app.module.js gzip | 840 B | 866 B | |
_error.module.js | 23.3 kB | 23.4 kB | |
_error.module.js gzip | 8.62 kB | 8.65 kB | |
hooks.module.js | 1.55 kB | 1.58 kB | |
hooks.module.js gzip | 804 B | 824 B | |
index.module.js | 319 B | 355 B | |
index.module.js gzip | 238 B | 260 B | |
link.module.js | 8.52 kB | 8.56 kB | |
link.module.js gzip | 3.68 kB | 3.69 kB | |
routerDirect.module.js | 419 B | 455 B | |
routerDirect.module.js gzip | 294 B | 316 B | |
withRouter.module.js | 429 B | 466 B | |
withRouter.module.js gzip | 293 B | 318 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
index.html | 3.69 kB | 3.7 kB | |
index.html gzip | 956 B | 956 B | ✓ |
link.html | 3.74 kB | 3.74 kB | |
link.html gzip | 964 B | 965 B | |
withRouter.html | 3.75 kB | 3.75 kB | |
withRouter.html gzip | 952 B | 951 B | -1 B |
Overall change |
Diffs
Diff for main-HASH.js
@@ -387,7 +387,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, perfDataRelayer;
var Container =
/*#__PURE__*/
@@ -460,7 +460,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, app, mod, initialErr, _require, isValidElementType, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -471,52 +471,60 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ app = _ref3.page;
+ mod = _ref3.mod;
+ App = app;
+
+ if (mod && mod.relayPerformanceData) {
+ perfDataRelayer = mod.relayPerformanceData;
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
+ case 26:
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -547,12 +555,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 30:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -715,6 +723,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom["default"].render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -723,6 +745,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -738,16 +778,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1479,13 +1533,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (value) {
+ return value ? value.page : value;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ mod = _ref.mod;
_this3.pageRegisterEvents.off(route, fire);
@@ -1494,7 +1556,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ mod: mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1503,8 +1568,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ mod = cachedPage.mod;
+ error ? reject(error) : resolve({
+ page: page,
+ mod: mod
+ });
return;
} // Register a listener to get the page
@@ -1599,16 +1668,19 @@ function () {
try {
var _regFn = regFn(),
error = _regFn.error,
- page = _regFn.page;
+ page = _regFn.page,
+ mod = _regFn.mod;
_this5.pageCache[route] = {
error: error,
- page: page
+ page: page,
+ mod: mod
};
_this5.pageRegisterEvents.emit(route, {
error: error,
- page: page
+ page: page,
+ mod: mod
});
} catch (error) {
_this5.pageCache[route] = {
Diff for main-HASH.module.js
@@ -458,7 +458,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, perfDataRelayer;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -516,7 +516,16 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ page: app,
+ mod
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (mod && mod.relayPerformanceData) {
+ perfDataRelayer = mod.relayPerformanceData;
+ }
+
let initialErr = err;
try {
@@ -657,6 +666,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom.default.render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -665,6 +688,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -680,16 +721,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1380,12 +1435,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(value => value ? value.page : value);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ mod
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1393,7 +1453,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1403,9 +1466,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ mod
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ mod
+ });
return;
} // Register a listener to get the page
@@ -1475,15 +1542,18 @@ class PageLoader {
try {
const {
error,
- page
+ page,
+ mod
} = regFn();
this.pageCache[route] = {
error,
- page
+ page,
+ mod
};
this.pageRegisterEvents.emit(route, {
error,
- page
+ page,
+ mod
});
} catch (error) {
this.pageCache[route] = {
Diff for _app.js
@@ -194,7 +194,14 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _error.js
@@ -144,7 +144,14 @@ var styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for hooks.js
@@ -996,7 +996,14 @@ module.exports = __webpack_require__("jmDH") ? Object.defineProperties : functio
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.js
@@ -24,7 +24,14 @@ Page.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for link.js
@@ -169,7 +169,14 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for routerDirect.js
@@ -7,7 +7,14 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for withRouter.js
@@ -32,7 +32,14 @@ useWithRouter.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _app.module.js
@@ -199,7 +199,14 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _error.module.js
@@ -123,7 +123,14 @@ const styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for hooks.module.js
@@ -135,7 +135,14 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.module.js
@@ -20,7 +20,14 @@ Page.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for link.module.js
@@ -227,7 +227,14 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for routerDirect.module.js
@@ -7,7 +7,14 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for withRouter.module.js
@@ -30,7 +30,14 @@ useWithRouter.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ var pageExports = {};
+ for (var exportKey in page) {
+ pageExports[exportKey] = page[exportKey];
+ }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/index.module.js"
+ <link rel="preload" href="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/index.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/xI1vo8AwOESJJaNETsbeb0Ny83Y=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/HeNcc2XGPbMs5oGcisSM5ubeXU0=.c659a74b6088e6ac1abe.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/6U9BNV1NtTidOmRbE_ZtH/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -26,40 +26,40 @@
<div id="__next">Hello world 👋</div>
<script id="__NEXT_DATA__" type="application/json"
crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"6U9BNV1NtTidOmRbE_ZtH"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"fR3Cl3XZa6fiX0b1NQ4NR"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/" src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/index.js"
+ <script async="" data-next-page="/" src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/index.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/" src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/index.module.js"
+ <script async="" data-next-page="/" src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/index.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-a384efaae9c1fc560750.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/YA5rfjZPcGuK5OHsplw7D2Xu+iw=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/mILlP0rY+V3ndT9OlOHhA4iWDdI=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/xI1vo8AwOESJJaNETsbeb0Ny83Y=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/HeNcc2XGPbMs5oGcisSM5ubeXU0=.f6f7599a2edf91d8366a.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/xI1vo8AwOESJJaNETsbeb0Ny83Y=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/HeNcc2XGPbMs5oGcisSM5ubeXU0=.c659a74b6088e6ac1abe.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/_buildManifest.js"
+ <script src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/_buildManifest.module.js"
+ <script src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for link.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/link.module.js"
+ <link rel="preload" href="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/link.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/xI1vo8AwOESJJaNETsbeb0Ny83Y=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/HeNcc2XGPbMs5oGcisSM5ubeXU0=.c659a74b6088e6ac1abe.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/6U9BNV1NtTidOmRbE_ZtH/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -29,18 +29,18 @@
</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"6U9BNV1NtTidOmRbE_ZtH"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"fR3Cl3XZa6fiX0b1NQ4NR"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/link" src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/link.js"
+ <script async="" data-next-page="/link" src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/link.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/link" src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/link.module.js"
+ <script async="" data-next-page="/link" src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/link.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -50,19 +50,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/YA5rfjZPcGuK5OHsplw7D2Xu+iw=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/mILlP0rY+V3ndT9OlOHhA4iWDdI=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/xI1vo8AwOESJJaNETsbeb0Ny83Y=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/HeNcc2XGPbMs5oGcisSM5ubeXU0=.f6f7599a2edf91d8366a.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/xI1vo8AwOESJJaNETsbeb0Ny83Y=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/HeNcc2XGPbMs5oGcisSM5ubeXU0=.c659a74b6088e6ac1abe.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-a384efaae9c1fc560750.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/_buildManifest.js"
+ <script src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/_buildManifest.module.js"
+ <script src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for withRouter.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/withRouter.module.js"
+ <link rel="preload" href="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/withRouter.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/xI1vo8AwOESJJaNETsbeb0Ny83Y=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/HeNcc2XGPbMs5oGcisSM5ubeXU0=.c659a74b6088e6ac1abe.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/6U9BNV1NtTidOmRbE_ZtH/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -27,18 +27,18 @@
<div>I use withRouter</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"6U9BNV1NtTidOmRbE_ZtH"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"fR3Cl3XZa6fiX0b1NQ4NR"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/withRouter" src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/withRouter.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/withRouter.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/withRouter" src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/withRouter.module.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/withRouter.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -48,19 +48,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/YA5rfjZPcGuK5OHsplw7D2Xu+iw=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/mILlP0rY+V3ndT9OlOHhA4iWDdI=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/xI1vo8AwOESJJaNETsbeb0Ny83Y=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/HeNcc2XGPbMs5oGcisSM5ubeXU0=.f6f7599a2edf91d8366a.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/xI1vo8AwOESJJaNETsbeb0Ny83Y=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/HeNcc2XGPbMs5oGcisSM5ubeXU0=.c659a74b6088e6ac1abe.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-a384efaae9c1fc560750.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/_buildManifest.js"
+ <script src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/6U9BNV1NtTidOmRbE_ZtH/_buildManifest.module.js"
+ <script src="/_next/static/fR3Cl3XZa6fiX0b1NQ4NR/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 25.6s | 25.6s | ✓ |
nodeModulesSize | 41.8 MB | 41.8 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.1 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.38 kB | 6.54 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.88 kB | |
_app.js gzip | 884 B | 909 B | |
_error.js | 12.1 kB | 12.2 kB | |
_error.js gzip | 4.76 kB | 4.78 kB | |
hooks.js | 12.7 kB | 12.8 kB | |
hooks.js gzip | 4.81 kB | 4.83 kB | |
index.js | 343 B | 383 B | |
index.js gzip | 237 B | 260 B | |
link.js | 8.14 kB | 8.18 kB | |
link.js gzip | 3.49 kB | 3.51 kB | |
routerDirect.js | 433 B | 473 B | |
routerDirect.js gzip | 296 B | 320 B | |
withRouter.js | 444 B | 484 B | |
withRouter.js gzip | 294 B | 318 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.76 kB | |
_app.module.js gzip | 840 B | 866 B | |
_error.module.js | 23.3 kB | 23.4 kB | |
_error.module.js gzip | 8.62 kB | 8.65 kB | |
hooks.module.js | 1.55 kB | 1.58 kB | |
hooks.module.js gzip | 804 B | 823 B | |
index.module.js | 319 B | 355 B | |
index.module.js gzip | 238 B | 260 B | |
link.module.js | 8.52 kB | 8.56 kB | |
link.module.js gzip | 3.68 kB | 3.69 kB | |
routerDirect.module.js | 419 B | 455 B | |
routerDirect.module.js gzip | 294 B | 316 B | |
withRouter.module.js | 429 B | 465 B | |
withRouter.module.js gzip | 293 B | 318 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Serverless bundles Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | -3 B |
_error.js gzip | 66.3 kB | 66.4 kB | |
hooks.html | 3.81 kB | 3.81 kB | -2 B |
hooks.html gzip | 978 B | 987 B | |
index.js | 248 kB | 248 kB | -3 B |
index.js gzip | 66.6 kB | 66.6 kB | |
link.js | 256 kB | 256 kB | -3 B |
link.js gzip | 68.7 kB | 68.9 kB | |
routerDirect.js | 249 kB | 249 kB | -3 B |
routerDirect.js gzip | 66.7 kB | 66.7 kB | |
withRouter.js | 249 kB | 249 kB | -3 B |
withRouter.js gzip | 66.6 kB | 66.7 kB | |
Overall change | -17 B |
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 23.2s | 23.3s | |
nodeModulesSize | 42 MB | 42 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.1 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.37 kB | 6.54 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.84 kB | |
_app.js gzip | 884 B | 888 B | |
_error.js | 12.1 kB | 12.1 kB | |
_error.js gzip | 4.76 kB | 4.76 kB | |
hooks.js | 12.7 kB | 12.7 kB | |
hooks.js gzip | 4.81 kB | 4.81 kB | |
index.js | 343 B | 349 B | |
index.js gzip | 237 B | 242 B | |
link.js | 8.14 kB | 8.14 kB | |
link.js gzip | 3.49 kB | 3.5 kB | |
routerDirect.js | 434 B | 439 B | |
routerDirect.js gzip | 296 B | 300 B | |
withRouter.js | 444 B | 450 B | |
withRouter.js gzip | 294 B | 298 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.73 kB | |
_app.module.js gzip | 840 B | 845 B | |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.62 kB | 8.63 kB | |
hooks.module.js | 1.55 kB | 1.55 kB | |
hooks.module.js gzip | 805 B | 809 B | |
index.module.js | 319 B | 325 B | |
index.module.js gzip | 238 B | 243 B | |
link.module.js | 8.52 kB | 8.53 kB | |
link.module.js gzip | 3.68 kB | 3.68 kB | |
routerDirect.module.js | 419 B | 425 B | |
routerDirect.module.js gzip | 294 B | 299 B | |
withRouter.module.js | 430 B | 435 B | |
withRouter.module.js gzip | 293 B | 297 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
index.html | 3.69 kB | 3.69 kB | |
index.html gzip | 957 B | 955 B | -2 B |
link.html | 3.74 kB | 3.74 kB | |
link.html gzip | 965 B | 962 B | -3 B |
withRouter.html | 3.75 kB | 3.75 kB | |
withRouter.html gzip | 952 B | 949 B | -3 B |
Overall change |
Diffs
Diff for main-HASH.js
@@ -387,7 +387,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, perfDataRelayer;
var Container =
/*#__PURE__*/
@@ -460,7 +460,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, app, mod, initialErr, _require, isValidElementType, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -471,52 +471,60 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ app = _ref3.page;
+ mod = _ref3.mod;
+ App = app;
+
+ if (mod && mod.relayPerformanceData) {
+ perfDataRelayer = mod.relayPerformanceData;
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
+ case 26:
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -547,12 +555,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 30:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -715,6 +723,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom["default"].render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -723,6 +745,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -738,16 +778,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1479,13 +1533,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (value) {
+ return value ? value.page : value;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ mod = _ref.mod;
_this3.pageRegisterEvents.off(route, fire);
@@ -1494,7 +1556,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ mod: mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1503,8 +1568,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ mod = cachedPage.mod;
+ error ? reject(error) : resolve({
+ page: page,
+ mod: mod
+ });
return;
} // Register a listener to get the page
@@ -1599,16 +1668,19 @@ function () {
try {
var _regFn = regFn(),
error = _regFn.error,
- page = _regFn.page;
+ page = _regFn.page,
+ mod = _regFn.mod;
_this5.pageCache[route] = {
error: error,
- page: page
+ page: page,
+ mod: mod
};
_this5.pageRegisterEvents.emit(route, {
error: error,
- page: page
+ page: page,
+ mod: mod
});
} catch (error) {
_this5.pageCache[route] = {
Diff for main-HASH.module.js
@@ -458,7 +458,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, perfDataRelayer;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -516,7 +516,16 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ page: app,
+ mod
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (mod && mod.relayPerformanceData) {
+ perfDataRelayer = mod.relayPerformanceData;
+ }
+
let initialErr = err;
try {
@@ -657,6 +666,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom.default.render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -665,6 +688,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -680,16 +721,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1380,12 +1435,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(value => value ? value.page : value);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ mod
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1393,7 +1453,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1403,9 +1466,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ mod
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ mod
+ });
return;
} // Register a listener to get the page
@@ -1475,15 +1542,18 @@ class PageLoader {
try {
const {
error,
- page
+ page,
+ mod
} = regFn();
this.pageCache[route] = {
error,
- page
+ page,
+ mod
};
this.pageRegisterEvents.emit(route, {
error,
- page
+ page,
+ mod
});
} catch (error) {
this.pageCache[route] = {
Diff for _app.js
@@ -194,7 +194,10 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _error.js
@@ -144,7 +144,10 @@ var styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for hooks.js
@@ -996,7 +996,10 @@ module.exports = __webpack_require__("jmDH") ? Object.defineProperties : functio
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.js
@@ -24,7 +24,10 @@ Page.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for link.js
@@ -169,7 +169,10 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for routerDirect.js
@@ -7,7 +7,10 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for withRouter.js
@@ -32,7 +32,10 @@ useWithRouter.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _app.module.js
@@ -199,7 +199,10 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _error.module.js
@@ -123,7 +123,10 @@ const styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for hooks.module.js
@@ -135,7 +135,10 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.module.js
@@ -20,7 +20,10 @@ Page.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for link.module.js
@@ -227,7 +227,10 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for routerDirect.module.js
@@ -7,7 +7,10 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for withRouter.module.js
@@ -30,7 +30,10 @@ useWithRouter.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/index.module.js"
+ <link rel="preload" href="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/index.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/SVYwRbR6GZbG0Jj2LYpZwmBDwA=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/MHnPSQPpt8GgdlDKwkLzW0bTcw8=.c659a74b6088e6ac1abe.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/rTXu3bK_3RUwFB6TRpgF_/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/DAMo6--cK2kjSRJJgR4wZ/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -26,40 +26,40 @@
<div id="__next">Hello world 👋</div>
<script id="__NEXT_DATA__" type="application/json"
crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"rTXu3bK_3RUwFB6TRpgF_"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"DAMo6--cK2kjSRJJgR4wZ"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/" src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/index.js"
+ <script async="" data-next-page="/" src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/index.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/" src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/index.module.js"
+ <script async="" data-next-page="/" src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/index.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-a384efaae9c1fc560750.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/gkG20eNMMZAkWScoF9Pb6KeD83M=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/fIYEHslRdhyb7dId+7246PO1FM=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/SVYwRbR6GZbG0Jj2LYpZwmBDwA=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/MHnPSQPpt8GgdlDKwkLzW0bTcw8=.f6f7599a2edf91d8366a.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/SVYwRbR6GZbG0Jj2LYpZwmBDwA=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/MHnPSQPpt8GgdlDKwkLzW0bTcw8=.c659a74b6088e6ac1abe.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/_buildManifest.js"
+ <script src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/_buildManifest.module.js"
+ <script src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for link.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/link.module.js"
+ <link rel="preload" href="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/link.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/SVYwRbR6GZbG0Jj2LYpZwmBDwA=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/MHnPSQPpt8GgdlDKwkLzW0bTcw8=.c659a74b6088e6ac1abe.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/rTXu3bK_3RUwFB6TRpgF_/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/DAMo6--cK2kjSRJJgR4wZ/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -29,18 +29,18 @@
</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"rTXu3bK_3RUwFB6TRpgF_"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"DAMo6--cK2kjSRJJgR4wZ"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/link" src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/link.js"
+ <script async="" data-next-page="/link" src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/link.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/link" src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/link.module.js"
+ <script async="" data-next-page="/link" src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/link.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -50,19 +50,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/gkG20eNMMZAkWScoF9Pb6KeD83M=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/fIYEHslRdhyb7dId+7246PO1FM=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/SVYwRbR6GZbG0Jj2LYpZwmBDwA=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/MHnPSQPpt8GgdlDKwkLzW0bTcw8=.f6f7599a2edf91d8366a.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/SVYwRbR6GZbG0Jj2LYpZwmBDwA=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/MHnPSQPpt8GgdlDKwkLzW0bTcw8=.c659a74b6088e6ac1abe.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-a384efaae9c1fc560750.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/_buildManifest.js"
+ <script src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/_buildManifest.module.js"
+ <script src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for withRouter.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/withRouter.module.js"
+ <link rel="preload" href="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/withRouter.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/SVYwRbR6GZbG0Jj2LYpZwmBDwA=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/MHnPSQPpt8GgdlDKwkLzW0bTcw8=.c659a74b6088e6ac1abe.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/rTXu3bK_3RUwFB6TRpgF_/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/DAMo6--cK2kjSRJJgR4wZ/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -27,18 +27,18 @@
<div>I use withRouter</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"rTXu3bK_3RUwFB6TRpgF_"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"DAMo6--cK2kjSRJJgR4wZ"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/withRouter" src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/withRouter.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/withRouter.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/withRouter" src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/withRouter.module.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/withRouter.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -48,19 +48,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/gkG20eNMMZAkWScoF9Pb6KeD83M=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/fIYEHslRdhyb7dId+7246PO1FM=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/SVYwRbR6GZbG0Jj2LYpZwmBDwA=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/MHnPSQPpt8GgdlDKwkLzW0bTcw8=.f6f7599a2edf91d8366a.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/SVYwRbR6GZbG0Jj2LYpZwmBDwA=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/MHnPSQPpt8GgdlDKwkLzW0bTcw8=.c659a74b6088e6ac1abe.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-a384efaae9c1fc560750.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/_buildManifest.js"
+ <script src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/rTXu3bK_3RUwFB6TRpgF_/_buildManifest.module.js"
+ <script src="/_next/static/DAMo6--cK2kjSRJJgR4wZ/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 23.2s | 23.7s | |
nodeModulesSize | 42 MB | 42 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.1 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.37 kB | 6.54 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.84 kB | |
_app.js gzip | 884 B | 888 B | |
_error.js | 12.1 kB | 12.1 kB | |
_error.js gzip | 4.76 kB | 4.76 kB | |
hooks.js | 12.7 kB | 12.7 kB | |
hooks.js gzip | 4.81 kB | 4.81 kB | |
index.js | 343 B | 349 B | |
index.js gzip | 237 B | 242 B | |
link.js | 8.14 kB | 8.14 kB | |
link.js gzip | 3.49 kB | 3.5 kB | |
routerDirect.js | 434 B | 439 B | |
routerDirect.js gzip | 296 B | 300 B | |
withRouter.js | 444 B | 450 B | |
withRouter.js gzip | 294 B | 298 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.73 kB | |
_app.module.js gzip | 840 B | 845 B | |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.62 kB | 8.63 kB | |
hooks.module.js | 1.55 kB | 1.55 kB | |
hooks.module.js gzip | 805 B | 809 B | |
index.module.js | 319 B | 325 B | |
index.module.js gzip | 238 B | 243 B | |
link.module.js | 8.52 kB | 8.53 kB | |
link.module.js gzip | 3.68 kB | 3.68 kB | |
routerDirect.module.js | 419 B | 425 B | |
routerDirect.module.js gzip | 294 B | 299 B | |
withRouter.module.js | 430 B | 435 B | |
withRouter.module.js gzip | 293 B | 297 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | |
_error.js gzip | 66.4 kB | 66.4 kB | -23 B |
hooks.html | 3.81 kB | 3.81 kB | |
hooks.html gzip | 982 B | 983 B | |
index.js | 248 kB | 248 kB | ✓ |
index.js gzip | 66.8 kB | 66.6 kB | -196 B |
link.js | 256 kB | 256 kB | ✓ |
link.js gzip | 68.9 kB | 68.9 kB | -54 B |
routerDirect.js | 249 kB | 249 kB | ✓ |
routerDirect.js gzip | 66.7 kB | 66.7 kB | |
withRouter.js | 249 kB | 249 kB | ✓ |
withRouter.js gzip | 66.9 kB | 66.7 kB | -128 B |
Overall change |
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 21.6s | 21.2s | -353ms |
nodeModulesSize | 42 MB | 42 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.1 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.38 kB | 6.54 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.84 kB | |
_app.js gzip | 884 B | 888 B | |
_error.js | 12.1 kB | 12.1 kB | |
_error.js gzip | 4.76 kB | 4.76 kB | |
hooks.js | 12.7 kB | 12.7 kB | |
hooks.js gzip | 4.81 kB | 4.81 kB | |
index.js | 343 B | 349 B | |
index.js gzip | 237 B | 242 B | |
link.js | 8.14 kB | 8.14 kB | |
link.js gzip | 3.49 kB | 3.5 kB | |
routerDirect.js | 433 B | 439 B | |
routerDirect.js gzip | 296 B | 300 B | |
withRouter.js | 444 B | 450 B | |
withRouter.js gzip | 294 B | 298 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.73 kB | |
_app.module.js gzip | 840 B | 845 B | |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.62 kB | 8.63 kB | |
hooks.module.js | 1.55 kB | 1.55 kB | |
hooks.module.js gzip | 804 B | 809 B | |
index.module.js | 319 B | 325 B | |
index.module.js gzip | 238 B | 243 B | |
link.module.js | 8.52 kB | 8.53 kB | |
link.module.js gzip | 3.68 kB | 3.68 kB | |
routerDirect.module.js | 419 B | 425 B | |
routerDirect.module.js gzip | 294 B | 299 B | |
withRouter.module.js | 429 B | 435 B | |
withRouter.module.js gzip | 293 B | 297 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
index.html | 3.69 kB | 3.7 kB | |
index.html gzip | 957 B | 953 B | -4 B |
link.html | 3.74 kB | 3.75 kB | |
link.html gzip | 966 B | 962 B | -4 B |
withRouter.html | 3.75 kB | 3.75 kB | |
withRouter.html gzip | 952 B | 948 B | -4 B |
Overall change |
Diffs
Diff for main-HASH.js
@@ -387,7 +387,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, perfDataRelayer;
var Container =
/*#__PURE__*/
@@ -460,7 +460,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, app, mod, initialErr, _require, isValidElementType, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -471,52 +471,60 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ app = _ref3.page;
+ mod = _ref3.mod;
+ App = app;
+
+ if (mod && mod.relayPerformanceData) {
+ perfDataRelayer = mod.relayPerformanceData;
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
+ case 26:
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -547,12 +555,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 30:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -715,6 +723,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom["default"].render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -723,6 +745,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -738,16 +778,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1479,13 +1533,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (value) {
+ return value ? value.page : value;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ mod = _ref.mod;
_this3.pageRegisterEvents.off(route, fire);
@@ -1494,7 +1556,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ mod: mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1503,8 +1568,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ mod = cachedPage.mod;
+ error ? reject(error) : resolve({
+ page: page,
+ mod: mod
+ });
return;
} // Register a listener to get the page
@@ -1599,16 +1668,19 @@ function () {
try {
var _regFn = regFn(),
error = _regFn.error,
- page = _regFn.page;
+ page = _regFn.page,
+ mod = _regFn.mod;
_this5.pageCache[route] = {
error: error,
- page: page
+ page: page,
+ mod: mod
};
_this5.pageRegisterEvents.emit(route, {
error: error,
- page: page
+ page: page,
+ mod: mod
});
} catch (error) {
_this5.pageCache[route] = {
Diff for main-HASH.module.js
@@ -458,7 +458,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, perfDataRelayer;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -516,7 +516,16 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ page: app,
+ mod
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (mod && mod.relayPerformanceData) {
+ perfDataRelayer = mod.relayPerformanceData;
+ }
+
let initialErr = err;
try {
@@ -657,6 +666,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom.default.render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -665,6 +688,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -680,16 +721,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1380,12 +1435,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(value => value ? value.page : value);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ mod
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1393,7 +1453,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1403,9 +1466,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ mod
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ mod
+ });
return;
} // Register a listener to get the page
@@ -1475,15 +1542,18 @@ class PageLoader {
try {
const {
error,
- page
+ page,
+ mod
} = regFn();
this.pageCache[route] = {
error,
- page
+ page,
+ mod
};
this.pageRegisterEvents.emit(route, {
error,
- page
+ page,
+ mod
});
} catch (error) {
this.pageCache[route] = {
Diff for _app.js
@@ -194,7 +194,10 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _error.js
@@ -144,7 +144,10 @@ var styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for hooks.js
@@ -996,7 +996,10 @@ module.exports = __webpack_require__("jmDH") ? Object.defineProperties : functio
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.js
@@ -24,7 +24,10 @@ Page.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for link.js
@@ -169,7 +169,10 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for routerDirect.js
@@ -7,7 +7,10 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for withRouter.js
@@ -32,7 +32,10 @@ useWithRouter.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _app.module.js
@@ -199,7 +199,10 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _error.module.js
@@ -123,7 +123,10 @@ const styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for hooks.module.js
@@ -135,7 +135,10 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.module.js
@@ -20,7 +20,10 @@ Page.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for link.module.js
@@ -227,7 +227,10 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for routerDirect.module.js
@@ -7,7 +7,10 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for withRouter.module.js
@@ -30,7 +30,10 @@ useWithRouter.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/index.module.js"
+ <link rel="preload" href="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/index.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/1Vr+f78gae0dNxUA6qbyaNN82U=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/Nh9l2gV3Sh5LlVSY3Po4au4p7pg=.c659a74b6088e6ac1abe.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/KTGgepzl2zKOtJZliNsOm/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -26,40 +26,40 @@
<div id="__next">Hello world 👋</div>
<script id="__NEXT_DATA__" type="application/json"
crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"ZFx6UFNT-4h6qUfpU4vAM"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"KTGgepzl2zKOtJZliNsOm"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/" src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/index.js"
+ <script async="" data-next-page="/" src="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/index.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/" src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/index.module.js"
+ <script async="" data-next-page="/" src="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/index.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-a384efaae9c1fc560750.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/HZgMkzmRLduqAa2t+BPh2v3jpU=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/6teDmaHxw2SfC2vSUHKR531gVw=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/1Vr+f78gae0dNxUA6qbyaNN82U=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/Nh9l2gV3Sh5LlVSY3Po4au4p7pg=.f6f7599a2edf91d8366a.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/1Vr+f78gae0dNxUA6qbyaNN82U=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/Nh9l2gV3Sh5LlVSY3Po4au4p7pg=.c659a74b6088e6ac1abe.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/_buildManifest.js"
+ <script src="/_next/static/KTGgepzl2zKOtJZliNsOm/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/_buildManifest.module.js"
+ <script src="/_next/static/KTGgepzl2zKOtJZliNsOm/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for link.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/link.module.js"
+ <link rel="preload" href="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/link.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/1Vr+f78gae0dNxUA6qbyaNN82U=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/Nh9l2gV3Sh5LlVSY3Po4au4p7pg=.c659a74b6088e6ac1abe.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/KTGgepzl2zKOtJZliNsOm/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -29,18 +29,18 @@
</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"ZFx6UFNT-4h6qUfpU4vAM"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"KTGgepzl2zKOtJZliNsOm"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/link" src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/link.js"
+ <script async="" data-next-page="/link" src="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/link.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/link" src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/link.module.js"
+ <script async="" data-next-page="/link" src="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/link.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -50,19 +50,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/HZgMkzmRLduqAa2t+BPh2v3jpU=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/6teDmaHxw2SfC2vSUHKR531gVw=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/1Vr+f78gae0dNxUA6qbyaNN82U=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/Nh9l2gV3Sh5LlVSY3Po4au4p7pg=.f6f7599a2edf91d8366a.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/1Vr+f78gae0dNxUA6qbyaNN82U=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/Nh9l2gV3Sh5LlVSY3Po4au4p7pg=.c659a74b6088e6ac1abe.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-a384efaae9c1fc560750.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/_buildManifest.js"
+ <script src="/_next/static/KTGgepzl2zKOtJZliNsOm/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/_buildManifest.module.js"
+ <script src="/_next/static/KTGgepzl2zKOtJZliNsOm/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for withRouter.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/withRouter.module.js"
+ <link rel="preload" href="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/withRouter.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/1Vr+f78gae0dNxUA6qbyaNN82U=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/Nh9l2gV3Sh5LlVSY3Po4au4p7pg=.c659a74b6088e6ac1abe.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/KTGgepzl2zKOtJZliNsOm/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -27,18 +27,18 @@
<div>I use withRouter</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"ZFx6UFNT-4h6qUfpU4vAM"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"KTGgepzl2zKOtJZliNsOm"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/withRouter" src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/withRouter.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/withRouter.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/withRouter" src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/withRouter.module.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/withRouter.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/KTGgepzl2zKOtJZliNsOm/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -48,19 +48,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/HZgMkzmRLduqAa2t+BPh2v3jpU=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/6teDmaHxw2SfC2vSUHKR531gVw=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/1Vr+f78gae0dNxUA6qbyaNN82U=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/Nh9l2gV3Sh5LlVSY3Po4au4p7pg=.f6f7599a2edf91d8366a.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/1Vr+f78gae0dNxUA6qbyaNN82U=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/Nh9l2gV3Sh5LlVSY3Po4au4p7pg=.c659a74b6088e6ac1abe.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-a384efaae9c1fc560750.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/_buildManifest.js"
+ <script src="/_next/static/KTGgepzl2zKOtJZliNsOm/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/ZFx6UFNT-4h6qUfpU4vAM/_buildManifest.module.js"
+ <script src="/_next/static/KTGgepzl2zKOtJZliNsOm/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 22.1s | 22.3s | |
nodeModulesSize | 42 MB | 42 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.1 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.37 kB | 6.54 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.84 kB | |
_app.js gzip | 884 B | 888 B | |
_error.js | 12.1 kB | 12.1 kB | |
_error.js gzip | 4.76 kB | 4.76 kB | |
hooks.js | 12.7 kB | 12.7 kB | |
hooks.js gzip | 4.81 kB | 4.81 kB | |
index.js | 343 B | 349 B | |
index.js gzip | 237 B | 242 B | |
link.js | 8.14 kB | 8.14 kB | |
link.js gzip | 3.49 kB | 3.5 kB | |
routerDirect.js | 434 B | 439 B | |
routerDirect.js gzip | 296 B | 300 B | |
withRouter.js | 444 B | 450 B | |
withRouter.js gzip | 294 B | 298 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.73 kB | |
_app.module.js gzip | 840 B | 845 B | |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.62 kB | 8.63 kB | |
hooks.module.js | 1.55 kB | 1.55 kB | |
hooks.module.js gzip | 805 B | 809 B | |
index.module.js | 319 B | 325 B | |
index.module.js gzip | 238 B | 243 B | |
link.module.js | 8.52 kB | 8.53 kB | |
link.module.js gzip | 3.68 kB | 3.68 kB | |
routerDirect.module.js | 419 B | 425 B | |
routerDirect.module.js gzip | 294 B | 299 B | |
withRouter.module.js | 430 B | 435 B | |
withRouter.module.js gzip | 293 B | 297 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Serverless bundles Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | -5 B |
_error.js gzip | 66.5 kB | 66.3 kB | -126 B |
hooks.html | 3.81 kB | 3.81 kB | -1 B |
hooks.html gzip | 982 B | 979 B | -3 B |
index.js | 248 kB | 248 kB | -5 B |
index.js gzip | 66.7 kB | 66.8 kB | |
link.js | 256 kB | 256 kB | -5 B |
link.js gzip | 68.9 kB | 68.9 kB | -69 B |
routerDirect.js | 249 kB | 249 kB | -5 B |
routerDirect.js gzip | 66.7 kB | 66.7 kB | -20 B |
withRouter.js | 249 kB | 249 kB | -5 B |
withRouter.js gzip | 66.7 kB | 66.8 kB | |
Overall change | -26 B |
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 21.6s | 21.8s | |
nodeModulesSize | 42 MB | 42 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.1 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.37 kB | 6.54 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.84 kB | |
_app.js gzip | 884 B | 888 B | |
_error.js | 12.1 kB | 12.1 kB | |
_error.js gzip | 4.76 kB | 4.76 kB | |
hooks.js | 12.7 kB | 12.7 kB | |
hooks.js gzip | 4.81 kB | 4.81 kB | |
index.js | 343 B | 349 B | |
index.js gzip | 237 B | 242 B | |
link.js | 8.14 kB | 8.14 kB | |
link.js gzip | 3.49 kB | 3.5 kB | |
routerDirect.js | 434 B | 439 B | |
routerDirect.js gzip | 296 B | 300 B | |
withRouter.js | 444 B | 450 B | |
withRouter.js gzip | 294 B | 298 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.73 kB | |
_app.module.js gzip | 840 B | 845 B | |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.62 kB | 8.63 kB | |
hooks.module.js | 1.55 kB | 1.55 kB | |
hooks.module.js gzip | 805 B | 809 B | |
index.module.js | 319 B | 325 B | |
index.module.js gzip | 238 B | 243 B | |
link.module.js | 8.52 kB | 8.53 kB | |
link.module.js gzip | 3.68 kB | 3.68 kB | |
routerDirect.module.js | 419 B | 425 B | |
routerDirect.module.js gzip | 294 B | 299 B | |
withRouter.module.js | 430 B | 435 B | |
withRouter.module.js gzip | 293 B | 297 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
index.html | 3.69 kB | 3.7 kB | |
index.html gzip | 952 B | 955 B | |
link.html | 3.74 kB | 3.75 kB | |
link.html gzip | 960 B | 963 B | |
withRouter.html | 3.75 kB | 3.75 kB | |
withRouter.html gzip | 948 B | 950 B | |
Overall change |
Diffs
Diff for main-HASH.js
@@ -387,7 +387,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, perfDataRelayer;
var Container =
/*#__PURE__*/
@@ -460,7 +460,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, app, mod, initialErr, _require, isValidElementType, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -471,52 +471,60 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ app = _ref3.page;
+ mod = _ref3.mod;
+ App = app;
+
+ if (mod && mod.relayPerformanceData) {
+ perfDataRelayer = mod.relayPerformanceData;
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
+ case 26:
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -547,12 +555,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 30:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -715,6 +723,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom["default"].render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -723,6 +745,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -738,16 +778,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1479,13 +1533,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (value) {
+ return value ? value.page : value;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ mod = _ref.mod;
_this3.pageRegisterEvents.off(route, fire);
@@ -1494,7 +1556,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ mod: mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1503,8 +1568,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ mod = cachedPage.mod;
+ error ? reject(error) : resolve({
+ page: page,
+ mod: mod
+ });
return;
} // Register a listener to get the page
@@ -1599,16 +1668,19 @@ function () {
try {
var _regFn = regFn(),
error = _regFn.error,
- page = _regFn.page;
+ page = _regFn.page,
+ mod = _regFn.mod;
_this5.pageCache[route] = {
error: error,
- page: page
+ page: page,
+ mod: mod
};
_this5.pageRegisterEvents.emit(route, {
error: error,
- page: page
+ page: page,
+ mod: mod
});
} catch (error) {
_this5.pageCache[route] = {
Diff for main-HASH.module.js
@@ -458,7 +458,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, perfDataRelayer;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -516,7 +516,16 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ page: app,
+ mod
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (mod && mod.relayPerformanceData) {
+ perfDataRelayer = mod.relayPerformanceData;
+ }
+
let initialErr = err;
try {
@@ -657,6 +666,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom.default.render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -665,6 +688,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -680,16 +721,30 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
performance.clearMarks();
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ performance.clearMeasures();
}
function AppContainer(_ref4) {
@@ -1380,12 +1435,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(value => value ? value.page : value);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ mod
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1393,7 +1453,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1403,9 +1466,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ mod
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ mod
+ });
return;
} // Register a listener to get the page
@@ -1475,15 +1542,18 @@ class PageLoader {
try {
const {
error,
- page
+ page,
+ mod
} = regFn();
this.pageCache[route] = {
error,
- page
+ page,
+ mod
};
this.pageRegisterEvents.emit(route, {
error,
- page
+ page,
+ mod
});
} catch (error) {
this.pageCache[route] = {
Diff for _app.js
@@ -194,7 +194,10 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _error.js
@@ -144,7 +144,10 @@ var styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for hooks.js
@@ -996,7 +996,10 @@ module.exports = __webpack_require__("jmDH") ? Object.defineProperties : functio
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.js
@@ -24,7 +24,10 @@ Page.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for link.js
@@ -169,7 +169,10 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for routerDirect.js
@@ -7,7 +7,10 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for withRouter.js
@@ -32,7 +32,10 @@ useWithRouter.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _app.module.js
@@ -199,7 +199,10 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _error.module.js
@@ -123,7 +123,10 @@ const styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for hooks.module.js
@@ -135,7 +135,10 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.module.js
@@ -20,7 +20,10 @@ Page.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for link.module.js
@@ -227,7 +227,10 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for routerDirect.module.js
@@ -7,7 +7,10 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for withRouter.module.js
@@ -30,7 +30,10 @@ useWithRouter.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/index.module.js"
+ <link rel="preload" href="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/index.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/lAVapmIoStI8UhU414GJlnuCRE=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/y+izAqJVpdgqvuT7i5zGls3v9s=.c659a74b6088e6ac1abe.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/Sb3t86FPmWptWC3nprpYj/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -26,40 +26,40 @@
<div id="__next">Hello world 👋</div>
<script id="__NEXT_DATA__" type="application/json"
crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"Sb3t86FPmWptWC3nprpYj"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"UQpFXL1Nyh6SQfmCj_OU4"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/" src="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/index.js"
+ <script async="" data-next-page="/" src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/index.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/" src="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/index.module.js"
+ <script async="" data-next-page="/" src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/index.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-a384efaae9c1fc560750.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/Z6JztBVt4CNv4R04BDKBm+UmU8=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/+CLd1vtuilKt1m32bdBZGxI+1Y8=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/lAVapmIoStI8UhU414GJlnuCRE=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/y+izAqJVpdgqvuT7i5zGls3v9s=.f6f7599a2edf91d8366a.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/lAVapmIoStI8UhU414GJlnuCRE=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/y+izAqJVpdgqvuT7i5zGls3v9s=.c659a74b6088e6ac1abe.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/Sb3t86FPmWptWC3nprpYj/_buildManifest.js"
+ <script src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/Sb3t86FPmWptWC3nprpYj/_buildManifest.module.js"
+ <script src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for link.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/link.module.js"
+ <link rel="preload" href="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/link.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/lAVapmIoStI8UhU414GJlnuCRE=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/y+izAqJVpdgqvuT7i5zGls3v9s=.c659a74b6088e6ac1abe.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/Sb3t86FPmWptWC3nprpYj/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -29,18 +29,18 @@
</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"Sb3t86FPmWptWC3nprpYj"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"UQpFXL1Nyh6SQfmCj_OU4"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/link" src="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/link.js"
+ <script async="" data-next-page="/link" src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/link.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/link" src="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/link.module.js"
+ <script async="" data-next-page="/link" src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/link.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -50,19 +50,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/Z6JztBVt4CNv4R04BDKBm+UmU8=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/+CLd1vtuilKt1m32bdBZGxI+1Y8=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/lAVapmIoStI8UhU414GJlnuCRE=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/y+izAqJVpdgqvuT7i5zGls3v9s=.f6f7599a2edf91d8366a.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/lAVapmIoStI8UhU414GJlnuCRE=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/y+izAqJVpdgqvuT7i5zGls3v9s=.c659a74b6088e6ac1abe.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-a384efaae9c1fc560750.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/Sb3t86FPmWptWC3nprpYj/_buildManifest.js"
+ <script src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/Sb3t86FPmWptWC3nprpYj/_buildManifest.module.js"
+ <script src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for withRouter.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/withRouter.module.js"
+ <link rel="preload" href="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/withRouter.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/lAVapmIoStI8UhU414GJlnuCRE=.c659a74b6088e6ac1abe.module.js"
+ <link rel="preload" href="/_next/static/chunks/y+izAqJVpdgqvuT7i5zGls3v9s=.c659a74b6088e6ac1abe.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/Sb3t86FPmWptWC3nprpYj/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -27,18 +27,18 @@
<div>I use withRouter</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"Sb3t86FPmWptWC3nprpYj"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"UQpFXL1Nyh6SQfmCj_OU4"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/withRouter" src="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/withRouter.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/withRouter.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/withRouter" src="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/withRouter.module.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/withRouter.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/Sb3t86FPmWptWC3nprpYj/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -48,19 +48,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/Z6JztBVt4CNv4R04BDKBm+UmU8=.155621535702fe040780.js"
+ <script src="/_next/static/chunks/+CLd1vtuilKt1m32bdBZGxI+1Y8=.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/lAVapmIoStI8UhU414GJlnuCRE=.f6f7599a2edf91d8366a.js"
+ <script src="/_next/static/chunks/y+izAqJVpdgqvuT7i5zGls3v9s=.f6f7599a2edf91d8366a.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/lAVapmIoStI8UhU414GJlnuCRE=.c659a74b6088e6ac1abe.module.js"
+ <script src="/_next/static/chunks/y+izAqJVpdgqvuT7i5zGls3v9s=.c659a74b6088e6ac1abe.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
+ <script src="/_next/static/runtime/main-a384efaae9c1fc560750.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
+ <script src="/_next/static/runtime/main-56045b40d3fb28f22ee2.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/Sb3t86FPmWptWC3nprpYj/_buildManifest.js"
+ <script src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/Sb3t86FPmWptWC3nprpYj/_buildManifest.module.js"
+ <script src="/_next/static/UQpFXL1Nyh6SQfmCj_OU4/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 23.1s | 23s | -111ms |
nodeModulesSize | 42 MB | 42 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.1 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.4 kB | |
main-HASH.module.js gzip | 6.38 kB | 6.54 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.84 kB | |
_app.js gzip | 884 B | 888 B | |
_error.js | 12.1 kB | 12.1 kB | |
_error.js gzip | 4.76 kB | 4.76 kB | |
hooks.js | 12.7 kB | 12.7 kB | |
hooks.js gzip | 4.81 kB | 4.81 kB | |
index.js | 343 B | 349 B | |
index.js gzip | 237 B | 242 B | |
link.js | 8.14 kB | 8.14 kB | |
link.js gzip | 3.49 kB | 3.5 kB | |
routerDirect.js | 433 B | 439 B | |
routerDirect.js gzip | 296 B | 300 B | |
withRouter.js | 444 B | 450 B | |
withRouter.js gzip | 294 B | 298 B | |
Overall change |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.73 kB | |
_app.module.js gzip | 840 B | 845 B | |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.62 kB | 8.63 kB | |
hooks.module.js | 1.55 kB | 1.55 kB | |
hooks.module.js gzip | 804 B | 809 B | |
index.module.js | 319 B | 325 B | |
index.module.js gzip | 238 B | 243 B | |
link.module.js | 8.52 kB | 8.53 kB | |
link.module.js gzip | 3.68 kB | 3.68 kB | |
routerDirect.module.js | 419 B | 425 B | |
routerDirect.module.js gzip | 294 B | 299 B | |
withRouter.module.js | 429 B | 435 B | |
withRouter.module.js gzip | 293 B | 297 B | |
Overall change |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | |
_error.js gzip | 66.4 kB | 66.4 kB | |
hooks.html | 3.81 kB | 3.81 kB | |
hooks.html gzip | 985 B | 979 B | -6 B |
index.js | 248 kB | 248 kB | |
index.js gzip | 66.6 kB | 66.7 kB | |
link.js | 256 kB | 256 kB | |
link.js gzip | 68.9 kB | 68.8 kB | -77 B |
routerDirect.js | 249 kB | 249 kB | |
routerDirect.js gzip | 66.7 kB | 66.7 kB | |
withRouter.js | 249 kB | 249 kB | |
withRouter.js gzip | 66.6 kB | 66.8 kB | |
Overall change |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
addressed the comments
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 22.3s | 22.1s | -134ms |
nodeModulesSize | 42 MB | 42 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.3 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change | 19.7 kB | 20.8 kB |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.6 kB | 17.5 kB | |
main-HASH.module.js gzip | 6.38 kB | 6.55 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change | 18.1 kB | 19 kB |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.84 kB | |
_app.js gzip | 883 B | 887 B | |
_error.js | 12.1 kB | 12.1 kB | |
_error.js gzip | 4.74 kB | 4.75 kB | |
hooks.js | 12.7 kB | 12.7 kB | |
hooks.js gzip | 4.81 kB | 4.81 kB | |
index.js | 343 B | 349 B | |
index.js gzip | 237 B | 242 B | |
link.js | 8.14 kB | 8.14 kB | |
link.js gzip | 3.49 kB | 3.5 kB | |
routerDirect.js | 433 B | 439 B | |
routerDirect.js gzip | 296 B | 300 B | |
withRouter.js | 444 B | 450 B | |
withRouter.js gzip | 294 B | 298 B | |
Overall change | 36 kB | 36 kB |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.73 kB | |
_app.module.js gzip | 841 B | 845 B | |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.6 kB | 8.61 kB | |
hooks.module.js | 1.55 kB | 1.55 kB | |
hooks.module.js gzip | 804 B | 809 B | |
index.module.js | 319 B | 325 B | |
index.module.js gzip | 238 B | 243 B | |
link.module.js | 8.52 kB | 8.53 kB | |
link.module.js gzip | 3.67 kB | 3.68 kB | |
routerDirect.module.js | 419 B | 425 B | |
routerDirect.module.js gzip | 294 B | 299 B | |
withRouter.module.js | 429 B | 435 B | |
withRouter.module.js gzip | 293 B | 297 B | |
Overall change | 36.2 kB | 36.3 kB |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Rendered Page Sizes
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
index.html | 3.75 kB | 3.75 kB | ✓ |
index.html gzip | 959 B | 961 B | |
link.html | 3.79 kB | 3.79 kB | ✓ |
link.html gzip | 967 B | 970 B | |
withRouter.html | 3.8 kB | 3.8 kB | ✓ |
withRouter.html gzip | 955 B | 957 B | |
Overall change | 11.3 kB | 11.3 kB | ✓ |
Diffs
Diff for main-HASH.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
/***/ "/h46":
/***/ (function(module, exports, __webpack_require__) {
@@ -417,7 +417,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, perfDataRelayer;
var Container =
/*#__PURE__*/
@@ -490,7 +490,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, app, mod, initialErr, _require, isValidElementType, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -501,52 +501,60 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ app = _ref3.page;
+ mod = _ref3.mod;
+ App = app;
+
+ if (mod && mod.onPerformanceData) {
+ perfDataRelayer = mod.onPerformanceData;
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
+ case 26:
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -577,12 +585,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 30:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -745,6 +753,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom["default"].render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -753,6 +775,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -768,6 +808,24 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -776,11 +834,9 @@ function clearMarks() {
['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(function (mark) {
return performance.clearMarks(mark);
});
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ ['Next.js-before-hydration', 'Next.js-hydration', 'Next.js-route-change-to-render', 'Next.js-render'].forEach(function (measure) {
+ return performance.clearMeasures(measure);
+ });
}
function AppContainer(_ref4) {
@@ -1474,13 +1530,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (value) {
+ return value ? value.page : value;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ mod = _ref.mod;
_this3.pageRegisterEvents.off(route, fire);
@@ -1489,7 +1553,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ mod: mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1498,8 +1565,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ mod = cachedPage.mod;
+ error ? reject(error) : resolve({
+ page: page,
+ mod: mod
+ });
return;
} // Register a listener to get the page
@@ -1594,16 +1665,19 @@ function () {
try {
var _regFn = regFn(),
error = _regFn.error,
- page = _regFn.page;
+ page = _regFn.page,
+ mod = _regFn.mod;
_this5.pageCache[route] = {
error: error,
- page: page
+ page: page,
+ mod: mod
};
_this5.pageRegisterEvents.emit(route, {
error: error,
- page: page
+ page: page,
+ mod: mod
});
} catch (error) {
_this5.pageCache[route] = {
Diff for main-HASH.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[3],{
/***/ "+oT+":
/***/ (function(module, exports, __webpack_require__) {
@@ -473,7 +473,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, perfDataRelayer;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -531,7 +531,16 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ page: app,
+ mod
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (mod && mod.onPerformanceData) {
+ perfDataRelayer = mod.onPerformanceData;
+ }
+
let initialErr = err;
try {
@@ -672,6 +681,20 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom.default.render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
}
function markHydrateComplete() {
@@ -680,6 +703,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -695,17 +736,31 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
;
['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(mark => performance.clearMarks(mark));
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ ['Next.js-before-hydration', 'Next.js-hydration', 'Next.js-route-change-to-render', 'Next.js-render'].forEach(measure => performance.clearMeasures(measure));
}
function AppContainer(_ref4) {
@@ -1373,12 +1428,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(value => value ? value.page : value);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ mod
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1386,7 +1446,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1396,9 +1459,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ mod
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ mod
+ });
return;
} // Register a listener to get the page
@@ -1468,15 +1535,18 @@ class PageLoader {
try {
const {
error,
- page
+ page,
+ mod
} = regFn();
this.pageCache[route] = {
error,
- page
+ page,
+ mod
};
this.pageRegisterEvents.emit(route, {
error,
- page
+ page,
+ mod
});
} catch (error) {
this.pageCache[route] = {
Diff for _app.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
/***/ "B5Ud":
/***/ (function(module, exports, __webpack_require__) {
@@ -194,7 +194,10 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _error.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
/***/ "+iuc":
/***/ (function(module, exports, __webpack_require__) {
@@ -189,7 +189,10 @@ var styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for hooks.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
/***/ "+MDD":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -996,7 +996,10 @@ module.exports = __webpack_require__("jmDH") ? Object.defineProperties : functio
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
/***/ "RNiq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -24,7 +24,10 @@ Page.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for link.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
/***/ "/h46":
/***/ (function(module, exports, __webpack_require__) {
@@ -169,7 +169,10 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for routerDirect.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
/***/ "LtRI":
/***/ (function(module, exports, __webpack_require__) {
@@ -7,7 +7,10 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for withRouter.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
/***/ "0Hlz":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -32,7 +32,10 @@ useWithRouter.getInitialProps = function () {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _app.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[3],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
/***/ "+oT+":
/***/ (function(module, exports, __webpack_require__) {
@@ -199,7 +199,10 @@ function createUrl(router) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
var page = __webpack_require__("B5Ud")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for _error.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
/***/ "+iuc":
/***/ (function(module, exports, __webpack_require__) {
@@ -165,7 +165,10 @@ const styles = {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error", function() {
var page = __webpack_require__("/a9y")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for hooks.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
/***/ "+MDD":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -135,7 +135,10 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/hooks", function() {
var page = __webpack_require__("+MDD")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
/***/ "RNiq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -20,7 +20,10 @@ Page.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/", function() {
var page = __webpack_require__("RNiq")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for link.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
/***/ "/h46":
/***/ (function(module, exports, __webpack_require__) {
@@ -227,7 +227,10 @@ module.exports = function (TYPE, $create) {
(window.__NEXT_P=window.__NEXT_P||[]).push(["/link", function() {
var page = __webpack_require__("ObF3")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for routerDirect.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
/***/ "LtRI":
/***/ (function(module, exports, __webpack_require__) {
@@ -7,7 +7,10 @@
(window.__NEXT_P=window.__NEXT_P||[]).push(["/routerDirect", function() {
var page = __webpack_require__("jSAA")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for withRouter.module.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
/***/ "0Hlz":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -30,7 +30,10 @@ useWithRouter.getInitialProps = () => ({});
(window.__NEXT_P=window.__NEXT_P||[]).push(["/withRouter", function() {
var page = __webpack_require__("0Hlz")
if(false) {}
- return { page: page.default || page }
+ return {
+ page: page.default || page,
+ mod: page
+ };
}]);
Diff for index.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/index.module.js"
+ <link rel="preload" href="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/index.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-41b570be350e74cf32cb.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-1c09a250f20a6758c857.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/ec4972a4116496713bfedf2a7a8beaff6a1d068a.85e4c18b9e4b400e5496.module.js"
+ <link rel="preload" href="/_next/static/chunks/64505ab02b18ff12c7c57a2bba024c08d48c322f.85e4c18b9e4b400e5496.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/R5Wowtqs2TS20Qal_f-EJ/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/uh19y-U_ed6_Ud-HkJiFB/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -26,40 +26,40 @@
<div id="__next">Hello world 👋</div>
<script id="__NEXT_DATA__" type="application/json"
crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"R5Wowtqs2TS20Qal_f-EJ"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"uh19y-U_ed6_Ud-HkJiFB"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/" src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/index.js"
+ <script async="" data-next-page="/" src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/index.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/" src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/index.module.js"
+ <script async="" data-next-page="/" src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/index.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-b50e91af3fd1d8cb23a4.js"
+ <script src="/_next/static/runtime/main-8c140d1a444c1b53a494.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-41b570be350e74cf32cb.module.js"
+ <script src="/_next/static/runtime/main-1c09a250f20a6758c857.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/fb15c98e15e31af96805649408916ad204d3b811.155621535702fe040780.js"
+ <script src="/_next/static/chunks/20349d46e2c58cd2bc6cd389b878eed799dd3906.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/ec4972a4116496713bfedf2a7a8beaff6a1d068a.474e0ebc58bce106266f.js"
+ <script src="/_next/static/chunks/64505ab02b18ff12c7c57a2bba024c08d48c322f.474e0ebc58bce106266f.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/ec4972a4116496713bfedf2a7a8beaff6a1d068a.85e4c18b9e4b400e5496.module.js"
+ <script src="/_next/static/chunks/64505ab02b18ff12c7c57a2bba024c08d48c322f.85e4c18b9e4b400e5496.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/_buildManifest.js"
+ <script src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/_buildManifest.module.js"
+ <script src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for link.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/link.module.js"
+ <link rel="preload" href="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/link.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/ec4972a4116496713bfedf2a7a8beaff6a1d068a.85e4c18b9e4b400e5496.module.js"
+ <link rel="preload" href="/_next/static/chunks/64505ab02b18ff12c7c57a2bba024c08d48c322f.85e4c18b9e4b400e5496.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-41b570be350e74cf32cb.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-1c09a250f20a6758c857.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/R5Wowtqs2TS20Qal_f-EJ/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/uh19y-U_ed6_Ud-HkJiFB/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -29,18 +29,18 @@
</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"R5Wowtqs2TS20Qal_f-EJ"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"uh19y-U_ed6_Ud-HkJiFB"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/link" src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/link.js"
+ <script async="" data-next-page="/link" src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/link.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/link" src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/link.module.js"
+ <script async="" data-next-page="/link" src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/link.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -50,19 +50,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/fb15c98e15e31af96805649408916ad204d3b811.155621535702fe040780.js"
+ <script src="/_next/static/chunks/20349d46e2c58cd2bc6cd389b878eed799dd3906.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/ec4972a4116496713bfedf2a7a8beaff6a1d068a.474e0ebc58bce106266f.js"
+ <script src="/_next/static/chunks/64505ab02b18ff12c7c57a2bba024c08d48c322f.474e0ebc58bce106266f.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/ec4972a4116496713bfedf2a7a8beaff6a1d068a.85e4c18b9e4b400e5496.module.js"
+ <script src="/_next/static/chunks/64505ab02b18ff12c7c57a2bba024c08d48c322f.85e4c18b9e4b400e5496.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-b50e91af3fd1d8cb23a4.js"
+ <script src="/_next/static/runtime/main-8c140d1a444c1b53a494.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-41b570be350e74cf32cb.module.js"
+ <script src="/_next/static/runtime/main-1c09a250f20a6758c857.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/_buildManifest.js"
+ <script src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/_buildManifest.module.js"
+ <script src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Diff for withRouter.html
@@ -6,19 +6,19 @@
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
/>
<meta name="next-head-count" content="2" />
- <link rel="preload" href="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/withRouter.module.js"
+ <link rel="preload" href="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/withRouter.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/_app.module.js"
+ <link rel="preload" href="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/_app.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/ec4972a4116496713bfedf2a7a8beaff6a1d068a.85e4c18b9e4b400e5496.module.js"
+ <link rel="preload" href="/_next/static/chunks/64505ab02b18ff12c7c57a2bba024c08d48c322f.85e4c18b9e4b400e5496.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-41b570be350e74cf32cb.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-1c09a250f20a6758c857.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/R5Wowtqs2TS20Qal_f-EJ/_buildManifest.module.js"
+ <link rel="preload" href="/_next/static/uh19y-U_ed6_Ud-HkJiFB/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
</head>
@@ -27,18 +27,18 @@
<div>I use withRouter</div>
</div>
<script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
- {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"R5Wowtqs2TS20Qal_f-EJ"}
+ {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"uh19y-U_ed6_Ud-HkJiFB"}
</script>
<script crossorigin="anonymous" nomodule="">
!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
</script>
- <script async="" data-next-page="/withRouter" src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/withRouter.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/withRouter.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/withRouter" src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/withRouter.module.js"
+ <script async="" data-next-page="/withRouter" src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/withRouter.module.js"
crossorigin="anonymous" type="module"></script>
- <script async="" data-next-page="/_app" src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/_app.js"
+ <script async="" data-next-page="/_app" src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/_app.js"
crossorigin="anonymous" nomodule=""></script>
- <script async="" data-next-page="/_app" src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/pages/_app.module.js"
+ <script async="" data-next-page="/_app" src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/pages/_app.module.js"
crossorigin="anonymous" type="module"></script>
<script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -48,19 +48,19 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/chunks/fb15c98e15e31af96805649408916ad204d3b811.155621535702fe040780.js"
+ <script src="/_next/static/chunks/20349d46e2c58cd2bc6cd389b878eed799dd3906.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/ec4972a4116496713bfedf2a7a8beaff6a1d068a.474e0ebc58bce106266f.js"
+ <script src="/_next/static/chunks/64505ab02b18ff12c7c57a2bba024c08d48c322f.474e0ebc58bce106266f.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/ec4972a4116496713bfedf2a7a8beaff6a1d068a.85e4c18b9e4b400e5496.module.js"
+ <script src="/_next/static/chunks/64505ab02b18ff12c7c57a2bba024c08d48c322f.85e4c18b9e4b400e5496.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-b50e91af3fd1d8cb23a4.js"
+ <script src="/_next/static/runtime/main-8c140d1a444c1b53a494.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-41b570be350e74cf32cb.module.js"
+ <script src="/_next/static/runtime/main-1c09a250f20a6758c857.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/_buildManifest.js"
+ <script src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/_buildManifest.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/R5Wowtqs2TS20Qal_f-EJ/_buildManifest.module.js"
+ <script src="/_next/static/uh19y-U_ed6_Ud-HkJiFB/_buildManifest.module.js"
async="" crossorigin="anonymous" type="module"></script>
</body>
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 24.1s | 22.5s | -1.6s |
nodeModulesSize | 42 MB | 42 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.3 kB | |
main-HASH.js gzip | 6.64 kB | 6.83 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
Overall change | 19.7 kB | 20.8 kB |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.6 kB | 17.5 kB | |
main-HASH.module.js gzip | 6.38 kB | 6.55 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.module.js gzip | 746 B | 746 B | ✓ |
Overall change | 18.1 kB | 19 kB |
Client Pages Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.83 kB | 1.84 kB | |
_app.js gzip | 883 B | 887 B | |
_error.js | 12.1 kB | 12.1 kB | |
_error.js gzip | 4.74 kB | 4.75 kB | |
hooks.js | 12.7 kB | 12.7 kB | |
hooks.js gzip | 4.81 kB | 4.81 kB | |
index.js | 343 B | 349 B | |
index.js gzip | 237 B | 242 B | |
link.js | 8.14 kB | 8.14 kB | |
link.js gzip | 3.49 kB | 3.5 kB | |
routerDirect.js | 433 B | 440 B | |
routerDirect.js gzip | 296 B | 301 B | |
withRouter.js | 444 B | 450 B | |
withRouter.js gzip | 294 B | 298 B | |
Overall change | 36 kB | 36 kB |
Client Pages Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.73 kB | 1.73 kB | |
_app.module.js gzip | 841 B | 845 B | |
_error.module.js | 23.3 kB | 23.3 kB | |
_error.module.js gzip | 8.6 kB | 8.61 kB | |
hooks.module.js | 1.55 kB | 1.55 kB | |
hooks.module.js gzip | 804 B | 810 B | |
index.module.js | 319 B | 325 B | |
index.module.js gzip | 238 B | 243 B | |
link.module.js | 8.52 kB | 8.53 kB | |
link.module.js gzip | 3.67 kB | 3.68 kB | |
routerDirect.module.js | 419 B | 425 B | |
routerDirect.module.js gzip | 294 B | 299 B | |
withRouter.module.js | 429 B | 436 B | |
withRouter.module.js gzip | 293 B | 298 B | |
Overall change | 36.2 kB | 36.3 kB |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManifest.module.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Serverless bundles
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 247 kB | 247 kB | ✓ |
_error.js gzip | 66.2 kB | 66.2 kB | |
hooks.html | 3.86 kB | 3.86 kB | ✓ |
hooks.html gzip | 986 B | 984 B | -2 B |
index.js | 248 kB | 248 kB | ✓ |
index.js gzip | 66.5 kB | 66.5 kB | -10 B |
link.js | 255 kB | 255 kB | ✓ |
link.js gzip | 68.5 kB | 68.5 kB | -4 B |
routerDirect.js | 249 kB | 249 kB | ✓ |
routerDirect.js gzip | 66.5 kB | 66.6 kB | |
withRouter.js | 249 kB | 249 kB | ✓ |
withRouter.js gzip | 66.5 kB | 66.6 kB | |
Overall change | 1.25 MB | 1.25 MB | ✓ |
720e2c2
to
6b33e05
Compare
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 15.4s | 14s | -1.4s |
nodeModulesSize | 48.4 MB | 42 MB | -6.41 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.3 kB | |
main-HASH.js gzip | 6.63 kB | 6.85 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..2b8407376.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..7376.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..3fa59b1f5.js | 43.1 kB | N/A | N/A |
de003c3a9d30..b1f5.js gzip | 15.5 kB | N/A | N/A |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
de003c3a9d30..1c5d17695.js | N/A | 43.1 kB | N/A |
de003c3a9d30..7695.js gzip | N/A | 15.4 kB | N/A |
Overall change | 210 kB | 211 kB |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.6 kB | |
main-HASH.module.js gzip | 6.38 kB | 6.57 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..4b.module.js | 45.5 kB | N/A | N/A |
de003c3a9d30..dule.js gzip | 16.5 kB | N/A | N/A |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
de003c3a9d30..5f.module.js | N/A | 45.5 kB | N/A |
de003c3a9d30..dule.js gzip | N/A | 16.5 kB | N/A |
Overall change | 189 kB | 190 kB |
Client Pages Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12 kB | ✓ |
_error.js gzip | 4.73 kB | 4.73 kB | ✓ |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.11 kB | -30 B |
link.js gzip | 3.5 kB | 3.48 kB | -21 B |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.8 kB | -30 B |
Client Pages Modern Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | ✓ |
_error.module.js gzip | 8.59 kB | 8.59 kB | ✓ |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.5 kB | -30 B |
link.module.js gzip | 3.68 kB | 3.66 kB | -20 B |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB | -30 B |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Rendered Page Sizes
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
index.html | 3.62 kB | 3.62 kB | ✓ |
index.html gzip | 947 B | 946 B | -1 B |
link.html | 3.66 kB | 3.66 kB | ✓ |
link.html gzip | 955 B | 955 B | ✓ |
withRouter.html | 3.67 kB | 3.67 kB | ✓ |
withRouter.html gzip | 942 B | 942 B | ✓ |
Overall change | 10.9 kB | 10.9 kB | ✓ |
Diffs
Diff for main-HASH.js
@@ -368,7 +368,7 @@ if (!window.Promise) {
var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
window.__NEXT_DATA__ = data;
-var version = "9.0.6";
+var version = "9.0.6-canary.4";
exports.version = version;
var props = data.props,
err = data.err,
@@ -417,7 +417,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, perfDataRelayer;
var Container =
/*#__PURE__*/
@@ -490,7 +490,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, app, mod, initialErr, _require, isValidElementType, initialAsPath, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -501,53 +501,64 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ app = _ref3.page;
+ mod = _ref3.mod;
+ App = app;
+
+ if (mod && mod.experimental_onPerformanceData) {
+ perfDataRelayer = mod.experimental_onPerformanceData;
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
- exports.router = router = (0, _router.createRouter)(page, query, asPath, {
+ case 26:
+ // if auto prerendered and dynamic route wait to update asPath
+ // until after mount to prevent hydration mismatch
+ initialAsPath = (0, _isDynamic.isDynamicRoute)(page) && data.nextExport ? page : asPath;
+ exports.router = router = (0, _router.createRouter)(page, query, initialAsPath, {
initialProps: props,
pageLoader: pageLoader,
App: App,
@@ -577,12 +588,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 31:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -739,18 +750,24 @@ function renderReactElement(reactEl, domEl) {
if (isInitialRender) {
- _reactDom["default"].hydrate(reactEl, domEl, function () {
- if (false) {}
-
- markHydrateComplete();
- });
+ _reactDom["default"].hydrate(reactEl, domEl, markHydrateComplete);
isInitialRender = false;
} else {
- _reactDom["default"].render(reactEl, domEl, function () {
- if (false) {}
+ _reactDom["default"].render(reactEl, domEl, markRenderComplete);
+ }
- markRenderComplete();
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
});
}
}
@@ -761,6 +778,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -776,6 +811,24 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(function (entry) {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -784,11 +837,9 @@ function clearMarks() {
['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(function (mark) {
return performance.clearMarks(mark);
});
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ ['Next.js-before-hydration', 'Next.js-hydration', 'Next.js-route-change-to-render', 'Next.js-render'].forEach(function (measure) {
+ return performance.clearMeasures(measure);
+ });
}
function AppContainer(_ref4) {
@@ -1482,13 +1533,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (value) {
+ return value ? value.page : value;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ mod = _ref.mod;
_this3.pageRegisterEvents.off(route, fire);
@@ -1497,7 +1556,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ mod: mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1506,8 +1568,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ mod = cachedPage.mod;
+ error ? reject(error) : resolve({
+ page: page,
+ mod: mod
+ });
return;
} // Register a listener to get the page
Diff for main-HASH.module.js
@@ -425,7 +425,7 @@ if (!window.Promise) {
const data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
window.__NEXT_DATA__ = data;
-const version = "9.0.6";
+const version = "9.0.6-canary.4";
exports.version = version;
const {
props,
@@ -473,7 +473,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, perfDataRelayer;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -531,7 +531,16 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ page: app,
+ mod
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (mod && mod.experimental_onPerformanceData) {
+ perfDataRelayer = mod.experimental_onPerformanceData;
+ }
+
let initialErr = err;
try {
@@ -545,9 +554,12 @@ function () {
if (window.__NEXT_PRELOADREADY) {
yield window.__NEXT_PRELOADREADY(dynamicIds);
- }
+ } // if auto prerendered and dynamic route wait to update asPath
+ // until after mount to prevent hydration mismatch
- exports.router = router = (0, _router.createRouter)(page, query, asPath, {
+
+ const initialAsPath = (0, _isDynamic.isDynamicRoute)(page) && data.nextExport ? page : asPath;
+ exports.router = router = (0, _router.createRouter)(page, query, initialAsPath, {
initialProps: props,
pageLoader,
App,
@@ -666,18 +678,24 @@ function renderReactElement(reactEl, domEl) {
if (isInitialRender) {
- _reactDom.default.hydrate(reactEl, domEl, function () {
- if (false) {}
-
- markHydrateComplete();
- });
+ _reactDom.default.hydrate(reactEl, domEl, markHydrateComplete);
isInitialRender = false;
} else {
- _reactDom.default.render(reactEl, domEl, function () {
- if (false) {}
+ _reactDom.default.render(reactEl, domEl, markRenderComplete);
+ }
- markRenderComplete();
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (perfDataRelayer) {
+ performance.getEntriesByType('paint').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
});
}
}
@@ -688,6 +706,24 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-hydration').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('beforeRender').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
@@ -703,17 +739,31 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (perfDataRelayer) {
+ performance.getEntriesByName('Next.js-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(entry => {
+ perfDataRelayer({
+ name: entry.name,
+ startTime: entry.startTime,
+ value: entry.duration
+ });
+ });
+ }
+
clearMarks();
}
function clearMarks() {
;
['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(mark => performance.clearMarks(mark));
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ ['Next.js-before-hydration', 'Next.js-hydration', 'Next.js-route-change-to-render', 'Next.js-render'].forEach(measure => performance.clearMeasures(measure));
}
function AppContainer(_ref4) {
@@ -1381,12 +1431,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(value => value ? value.page : value);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ mod
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1394,7 +1449,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1404,9 +1462,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ mod
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ mod
+ });
return;
} // Register a listener to get the page
Diff for link.js
@@ -512,12 +512,7 @@ var listenToIntersections = function listenToIntersections(el, cb) {
observer.observe(el);
listeners.set(el, cb);
return function () {
- try {
- observer.unobserve(el);
- } catch (err) {
- console.error(err);
- }
-
+ observer.unobserve(el);
listeners["delete"](el);
};
};
Diff for link.module.js
@@ -560,12 +560,7 @@ const listenToIntersections = (el, cb) => {
observer.observe(el);
listeners.set(el, cb);
return () => {
- try {
- observer.unobserve(el);
- } catch (err) {
- console.error(err);
- }
-
+ observer.unobserve(el);
listeners.delete(el);
};
};
Diff for index.html
@@ -12,11 +12,11 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-c035a9ad7fa402c8993c.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-0367150f8032fd63aacc.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.b5ebf6f8ef4730ac0f13.module.js"
+ <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.148b9d567c5ec499c554.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/BUILD_ID/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
@@ -43,9 +43,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-4cfcf108ec60b95745d5.js"
+ <script src="/_next/static/runtime/main-e62fcf90f7314c515878.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-c035a9ad7fa402c8993c.module.js"
+ <script src="/_next/static/runtime/main-0367150f8032fd63aacc.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
@@ -53,9 +53,9 @@
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.01cc4f1e34fde13f4eb9.js"
+ <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.884fe048044e62151ce8.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.b5ebf6f8ef4730ac0f13.module.js"
+ <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.148b9d567c5ec499c554.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -14,9 +14,9 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.b5ebf6f8ef4730ac0f13.module.js"
+ <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.148b9d567c5ec499c554.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-c035a9ad7fa402c8993c.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-0367150f8032fd63aacc.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/BUILD_ID/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
@@ -52,13 +52,13 @@
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.01cc4f1e34fde13f4eb9.js"
+ <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.884fe048044e62151ce8.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.b5ebf6f8ef4730ac0f13.module.js"
+ <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.148b9d567c5ec499c554.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-4cfcf108ec60b95745d5.js"
+ <script src="/_next/static/runtime/main-e62fcf90f7314c515878.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-c035a9ad7fa402c8993c.module.js"
+ <script src="/_next/static/runtime/main-0367150f8032fd63aacc.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,9 +14,9 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.b5ebf6f8ef4730ac0f13.module.js"
+ <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.148b9d567c5ec499c554.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-c035a9ad7fa402c8993c.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-0367150f8032fd63aacc.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/BUILD_ID/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
@@ -50,13 +50,13 @@
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.155621535702fe040780.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.01cc4f1e34fde13f4eb9.js"
+ <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.884fe048044e62151ce8.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.b5ebf6f8ef4730ac0f13.module.js"
+ <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.148b9d567c5ec499c554.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-4cfcf108ec60b95745d5.js"
+ <script src="/_next/static/runtime/main-e62fcf90f7314c515878.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-c035a9ad7fa402c8993c.module.js"
+ <script src="/_next/static/runtime/main-0367150f8032fd63aacc.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
crossorigin="anonymous" nomodule=""></script>
Serverless Mode (Increase detected ⚠️ )
General Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 14.5s | 14.3s | -145ms |
nodeModulesSize | 48.4 MB | 42 MB | -6.41 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.2 kB | 19.3 kB | |
main-HASH.js gzip | 6.63 kB | 6.85 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..2b8407376.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..7376.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..3fa59b1f5.js | 43.1 kB | N/A | N/A |
de003c3a9d30..b1f5.js gzip | 15.5 kB | N/A | N/A |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
de003c3a9d30..1c5d17695.js | N/A | 43.1 kB | N/A |
de003c3a9d30..7695.js gzip | N/A | 15.4 kB | N/A |
Overall change | 210 kB | 211 kB |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.5 kB | 17.6 kB | |
main-HASH.module.js gzip | 6.38 kB | 6.57 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..4b.module.js | 45.5 kB | N/A | N/A |
de003c3a9d30..dule.js gzip | 16.5 kB | N/A | N/A |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
de003c3a9d30..5f.module.js | N/A | 45.5 kB | N/A |
de003c3a9d30..dule.js gzip | N/A | 16.5 kB | N/A |
Overall change | 189 kB | 190 kB |
Client Pages Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12 kB | ✓ |
_error.js gzip | 4.73 kB | 4.73 kB | ✓ |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.11 kB | -30 B |
link.js gzip | 3.5 kB | 3.48 kB | -21 B |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.8 kB | -30 B |
Client Pages Modern Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | ✓ |
_error.module.js gzip | 8.59 kB | 8.59 kB | ✓ |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.5 kB | -30 B |
link.module.js gzip | 3.68 kB | 3.66 kB | -20 B |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB | -30 B |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Serverless bundles Overall decrease ✓
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 249 kB | 248 kB | -1.53 kB |
_error.js gzip | 66.4 kB | 66.2 kB | -238 B |
hooks.html | 3.75 kB | 3.75 kB | ✓ |
hooks.html gzip | 980 B | 979 B | -1 B |
index.js | 250 kB | 248 kB | -1.53 kB |
index.js gzip | 66.8 kB | 66.5 kB | -250 B |
link.js | 257 kB | 255 kB | -1.59 kB |
link.js gzip | 68.8 kB | 68.5 kB | -247 B |
routerDirect.js | 250 kB | 249 kB | -1.53 kB |
routerDirect.js gzip | 66.8 kB | 66.5 kB | -238 B |
withRouter.js | 250 kB | 249 kB | -1.53 kB |
withRouter.js gzip | 66.9 kB | 66.6 kB | -238 B |
Overall change | 1.26 MB | 1.25 MB | -7.71 kB |
Commit: 6b33e05
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Waiting on changes as discussed on Slack.
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 16.4s | 16.2s | -265ms |
nodeModulesSize | 48.3 MB | 48.3 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 18.9 kB | |
main-HASH.js gzip | 6.61 kB | 6.79 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..2b8407376.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..7376.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..6604acae7.js | 43.2 kB | 43.2 kB | ✓ |
de003c3a9d30..cae7.js gzip | 15.5 kB | 15.5 kB | ✓ |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 210 kB | 211 kB |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.4 kB | 17.2 kB | |
main-HASH.module.js gzip | 6.35 kB | 6.52 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..42.module.js | 45.6 kB | 45.6 kB | ✓ |
de003c3a9d30..dule.js gzip | 16.5 kB | 16.5 kB | ✓ |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 189 kB | 190 kB |
Client Pages
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12 kB | ✓ |
_error.js gzip | 4.73 kB | 4.73 kB | ✓ |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.5 kB | 3.5 kB | ✓ |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.8 kB | ✓ |
Client Pages Modern
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | ✓ |
_error.module.js gzip | 8.59 kB | 8.59 kB | ✓ |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.53 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB | ✓ |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Rendered Page Sizes
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
index.html | 3.62 kB | 3.62 kB | ✓ |
index.html gzip | 948 B | 945 B | -3 B |
link.html | 3.66 kB | 3.66 kB | ✓ |
link.html gzip | 955 B | 952 B | -3 B |
withRouter.html | 3.67 kB | 3.67 kB | ✓ |
withRouter.html gzip | 943 B | 941 B | -2 B |
Overall change | 10.9 kB | 10.9 kB | ✓ |
Diffs
Diff for main-HASH.js
@@ -417,7 +417,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, onPerfEntry;
var Container =
/*#__PURE__*/
@@ -490,7 +490,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, app, mod, initialErr, _require, isValidElementType, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -501,52 +501,69 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ app = _ref3.page;
+ mod = _ref3.mod;
+ App = app;
+
+ if (mod && mod.unstable_onPerformanceData) {
+ onPerfEntry = function onPerfEntry(_ref3) {
+ var entry = _ref3.entry,
+ startTime = _ref3.startTime,
+ value = _ref3.value;
+ mod.unstable_onPerformanceData({
+ entry: entry,
+ startTime: startTime,
+ value: value
+ });
+ };
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
+ case 26:
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -554,10 +571,10 @@ function () {
Component: Component,
wrapApp: wrapApp,
err: initialErr,
- subscription: function subscription(_ref3, App) {
- var Component = _ref3.Component,
- props = _ref3.props,
- err = _ref3.err;
+ subscription: function subscription(_ref4, App) {
+ var Component = _ref4.Component,
+ props = _ref4.props,
+ err = _ref4.err;
render({
App: App,
Component: Component,
@@ -577,12 +594,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 30:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -745,6 +762,14 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom["default"].render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (onPerfEntry) {
+ performance.getEntriesByType('paint').forEach(onPerfEntry);
+ }
}
function markHydrateComplete() {
@@ -753,6 +778,12 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (onPerfEntry) {
+ performance.getEntriesByName('Next.js-hydration').forEach(onPerfEntry);
+ performance.getEntriesByName('beforeRender').forEach(onPerfEntry);
+ }
+
clearMarks();
}
@@ -768,6 +799,12 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (onPerfEntry) {
+ performance.getEntriesByName('Next.js-render').forEach(onPerfEntry);
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(onPerfEntry);
+ }
+
clearMarks();
}
@@ -776,15 +813,13 @@ function clearMarks() {
['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(function (mark) {
return performance.clearMarks(mark);
});
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ ['Next.js-before-hydration', 'Next.js-hydration', 'Next.js-route-change-to-render', 'Next.js-render'].forEach(function (measure) {
+ return performance.clearMeasures(measure);
+ });
}
-function AppContainer(_ref4) {
- var children = _ref4.children;
+function AppContainer(_ref5) {
+ var children = _ref5.children;
return _react["default"].createElement(Container, {
fn: function fn(error) {
return renderError({
@@ -821,14 +856,14 @@ function doRender(_x4) {
function _doRender() {
_doRender = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
- _regeneratorRuntime.mark(function _callee4(_ref5) {
+ _regeneratorRuntime.mark(function _callee4(_ref6) {
var App, Component, props, err, _router2, pathname, _query, _asPath, AppTree, appCtx, appProps;
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
- App = _ref5.App, Component = _ref5.Component, props = _ref5.props, err = _ref5.err; // Usual getInitialProps fetching is handled in next/router
+ App = _ref6.App, Component = _ref6.Component, props = _ref6.props, err = _ref6.err; // Usual getInitialProps fetching is handled in next/router
// this is for when ErrorComponent gets replaced by Component by HMR
if (!(!props && Component && Component !== ErrorComponent && lastAppProps.Component === ErrorComponent)) {
@@ -1472,13 +1507,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (v) {
+ return v.page;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ mod = _ref.mod;
_this3.pageRegisterEvents.off(route, fire);
@@ -1487,7 +1530,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ mod: mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1496,8 +1542,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ mod = cachedPage.mod;
+ error ? reject(error) : resolve({
+ page: page,
+ mod: mod
+ });
return;
} // Register a listener to get the page
Diff for main-HASH.module.js
@@ -473,7 +473,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, onPerfEntry;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -531,7 +531,27 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ page: app,
+ mod
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (mod && mod.unstable_onPerformanceData) {
+ onPerfEntry = function onPerfEntry(_ref3) {
+ let {
+ entry,
+ startTime,
+ value
+ } = _ref3;
+ mod.unstable_onPerformanceData({
+ entry,
+ startTime,
+ value
+ });
+ };
+ }
+
let initialErr = err;
try {
@@ -554,12 +574,12 @@ function () {
Component,
wrapApp,
err: initialErr,
- subscription: (_ref3, App) => {
+ subscription: (_ref4, App) => {
let {
Component,
props,
err
- } = _ref3;
+ } = _ref4;
render({
App,
Component,
@@ -672,6 +692,14 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom.default.render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (onPerfEntry) {
+ performance.getEntriesByType('paint').forEach(onPerfEntry);
+ }
}
function markHydrateComplete() {
@@ -680,6 +708,12 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (onPerfEntry) {
+ performance.getEntriesByName('Next.js-hydration').forEach(onPerfEntry);
+ performance.getEntriesByName('beforeRender').forEach(onPerfEntry);
+ }
+
clearMarks();
}
@@ -695,23 +729,25 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (onPerfEntry) {
+ performance.getEntriesByName('Next.js-render').forEach(onPerfEntry);
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(onPerfEntry);
+ }
+
clearMarks();
}
function clearMarks() {
;
['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(mark => performance.clearMarks(mark));
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ ['Next.js-before-hydration', 'Next.js-hydration', 'Next.js-route-change-to-render', 'Next.js-render'].forEach(measure => performance.clearMeasures(measure));
}
-function AppContainer(_ref4) {
+function AppContainer(_ref5) {
let {
children
- } = _ref4;
+ } = _ref5;
return _react.default.createElement(Container, {
fn: error => renderError({
App,
@@ -740,13 +776,13 @@ function doRender(_x4) {
}
function _doRender() {
- _doRender = (0, _asyncToGenerator2.default)(function* (_ref5) {
+ _doRender = (0, _asyncToGenerator2.default)(function* (_ref6) {
let {
App,
Component,
props,
err
- } = _ref5; // Usual getInitialProps fetching is handled in next/router
+ } = _ref6; // Usual getInitialProps fetching is handled in next/router
// this is for when ErrorComponent gets replaced by Component by HMR
if (!props && Component && Component !== ErrorComponent && lastAppProps.Component === ErrorComponent) {
@@ -1371,12 +1407,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(v => v.page);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ mod
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1384,7 +1425,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1394,9 +1438,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ mod
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ mod
+ });
return;
} // Register a listener to get the page
Diff for index.html
@@ -12,7 +12,7 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-07fec87b6447d72c084b.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-36e5d9061282fdca1f38.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
@@ -43,9 +43,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-edef09c027e510e38028.js"
+ <script src="/_next/static/runtime/main-4f477bfcbe6c555d0733.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-07fec87b6447d72c084b.module.js"
+ <script src="/_next/static/runtime/main-36e5d9061282fdca1f38.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -16,7 +16,7 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-07fec87b6447d72c084b.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-36e5d9061282fdca1f38.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/BUILD_ID/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
@@ -56,9 +56,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-edef09c027e510e38028.js"
+ <script src="/_next/static/runtime/main-4f477bfcbe6c555d0733.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-07fec87b6447d72c084b.module.js"
+ <script src="/_next/static/runtime/main-36e5d9061282fdca1f38.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -16,7 +16,7 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-07fec87b6447d72c084b.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-36e5d9061282fdca1f38.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/BUILD_ID/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
@@ -54,9 +54,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-edef09c027e510e38028.js"
+ <script src="/_next/static/runtime/main-4f477bfcbe6c555d0733.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-07fec87b6447d72c084b.module.js"
+ <script src="/_next/static/runtime/main-36e5d9061282fdca1f38.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
crossorigin="anonymous" nomodule=""></script>
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 16.9s | 16.7s | -225ms |
nodeModulesSize | 48.3 MB | 48.3 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 18.9 kB | |
main-HASH.js gzip | 6.61 kB | 6.79 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..2b8407376.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..7376.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..6604acae7.js | 43.2 kB | 43.2 kB | ✓ |
de003c3a9d30..cae7.js gzip | 15.5 kB | 15.5 kB | ✓ |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 210 kB | 211 kB |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.4 kB | 17.2 kB | |
main-HASH.module.js gzip | 6.35 kB | 6.52 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..42.module.js | 45.6 kB | 45.6 kB | ✓ |
de003c3a9d30..dule.js gzip | 16.5 kB | 16.5 kB | ✓ |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 189 kB | 190 kB |
Client Pages
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12 kB | ✓ |
_error.js gzip | 4.73 kB | 4.73 kB | ✓ |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.5 kB | 3.5 kB | ✓ |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.8 kB | ✓ |
Client Pages Modern
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | ✓ |
_error.module.js gzip | 8.59 kB | 8.59 kB | ✓ |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.53 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB | ✓ |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Serverless bundles
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 253 kB | 253 kB | ✓ |
_error.js gzip | 67.9 kB | 67.9 kB | -3 B |
hooks.html | 3.75 kB | 3.75 kB | ✓ |
hooks.html gzip | 980 B | 978 B | -2 B |
index.js | 254 kB | 254 kB | ✓ |
index.js gzip | 68.2 kB | 68.2 kB | -4 B |
link.js | 261 kB | 261 kB | ✓ |
link.js gzip | 70.3 kB | 70.3 kB | -4 B |
routerDirect.js | 255 kB | 255 kB | ✓ |
routerDirect.js gzip | 68.3 kB | 68.3 kB | -3 B |
withRouter.js | 254 kB | 254 kB | ✓ |
withRouter.js gzip | 68.4 kB | 68.4 kB | -4 B |
Overall change | 1.28 MB | 1.28 MB | ✓ |
Commit: c97c142
done |
unstable_onPerformanceData
helper for performance entries
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great!
Stats from current PRDefault Server Mode (Increase detected
|
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 14.7s | 14.7s | |
nodeModulesSize | 48.3 MB | 48.3 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 18.9 kB | |
main-HASH.js gzip | 6.61 kB | 6.79 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..2b8407376.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..7376.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..6604acae7.js | 43.2 kB | 43.2 kB | ✓ |
de003c3a9d30..cae7.js gzip | 15.5 kB | 15.5 kB | ✓ |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 210 kB | 211 kB |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.4 kB | 17.2 kB | |
main-HASH.module.js gzip | 6.35 kB | 6.52 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..42.module.js | 45.6 kB | 45.6 kB | ✓ |
de003c3a9d30..dule.js gzip | 16.5 kB | 16.5 kB | ✓ |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 189 kB | 190 kB |
Client Pages
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12 kB | ✓ |
_error.js gzip | 4.73 kB | 4.73 kB | ✓ |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.5 kB | 3.5 kB | ✓ |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.8 kB | ✓ |
Client Pages Modern
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | ✓ |
_error.module.js gzip | 8.59 kB | 8.59 kB | ✓ |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.53 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB | ✓ |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Rendered Page Sizes
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
index.html | 3.62 kB | 3.62 kB | ✓ |
index.html gzip | 948 B | 947 B | -1 B |
link.html | 3.66 kB | 3.66 kB | ✓ |
link.html gzip | 955 B | 954 B | -1 B |
withRouter.html | 3.67 kB | 3.67 kB | ✓ |
withRouter.html gzip | 943 B | 942 B | -1 B |
Overall change | 10.9 kB | 10.9 kB | ✓ |
Diffs
Diff for main-HASH.js
@@ -417,7 +417,7 @@ exports.router = router;
var ErrorComponent;
exports.ErrorComponent = ErrorComponent;
var Component;
-var App;
+var App, onPerfEntry;
var Container =
/*#__PURE__*/
@@ -490,7 +490,7 @@ function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regeneratorRuntime.mark(function _callee(_temp) {
- var _ref, passedWebpackHMR, initialErr, _require, isValidElementType, renderCtx;
+ var _ref, passedWebpackHMR, _ref3, app, mod, initialErr, _require, isValidElementType, renderCtx;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
@@ -501,52 +501,69 @@ function () {
if (false) {}
_context.next = 4;
- return pageLoader.loadPage('/_app');
+ return pageLoader.loadPageScript('/_app');
case 4:
- App = _context.sent;
+ _ref3 = _context.sent;
+ app = _ref3.page;
+ mod = _ref3.mod;
+ App = app;
+
+ if (mod && mod.unstable_onPerformanceData) {
+ onPerfEntry = function onPerfEntry(_ref3) {
+ var name = _ref3.name,
+ startTime = _ref3.startTime,
+ value = _ref3.value;
+ mod.unstable_onPerformanceData({
+ name: name,
+ startTime: startTime,
+ value: value
+ });
+ };
+ }
+
initialErr = err;
- _context.prev = 6;
- _context.next = 9;
+ _context.prev = 10;
+ _context.next = 13;
return pageLoader.loadPage(page);
- case 9:
+ case 13:
Component = _context.sent;
if (true) {
- _context.next = 14;
+ _context.next = 18;
break;
}
_require = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'react-is'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())), isValidElementType = _require.isValidElementType;
if (isValidElementType(Component)) {
- _context.next = 14;
+ _context.next = 18;
break;
}
throw new Error("The default export is not a React Component in page: \"" + page + "\"");
- case 14:
- _context.next = 19;
+ case 18:
+ _context.next = 23;
break;
- case 16:
- _context.prev = 16;
- _context.t0 = _context["catch"](6);
+ case 20:
+ _context.prev = 20;
+ _context.t0 = _context["catch"](10);
// This catches errors like throwing in the top level of a module
initialErr = _context.t0;
- case 19:
+ case 23:
if (!window.__NEXT_PRELOADREADY) {
- _context.next = 22;
+ _context.next = 26;
break;
}
- _context.next = 22;
+ _context.next = 26;
return window.__NEXT_PRELOADREADY(dynamicIds);
- case 22:
+ case 26:
exports.router = router = (0, _router.createRouter)(page, query, asPath, {
initialProps: props,
pageLoader: pageLoader,
@@ -554,10 +571,10 @@ function () {
Component: Component,
wrapApp: wrapApp,
err: initialErr,
- subscription: function subscription(_ref3, App) {
- var Component = _ref3.Component,
- props = _ref3.props,
- err = _ref3.err;
+ subscription: function subscription(_ref4, App) {
+ var Component = _ref4.Component,
+ props = _ref4.props,
+ err = _ref4.err;
render({
App: App,
Component: Component,
@@ -577,12 +594,12 @@ function () {
render(renderCtx);
return _context.abrupt("return", emitter);
- case 26:
+ case 30:
case "end":
return _context.stop();
}
}
- }, _callee, null, [[6, 16]]);
+ }, _callee, null, [[10, 20]]);
}));
return function (_x) {
@@ -745,6 +762,14 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom["default"].render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (onPerfEntry) {
+ performance.getEntriesByType('paint').forEach(onPerfEntry);
+ }
}
function markHydrateComplete() {
@@ -753,6 +778,12 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (onPerfEntry) {
+ performance.getEntriesByName('Next.js-hydration').forEach(onPerfEntry);
+ performance.getEntriesByName('beforeRender').forEach(onPerfEntry);
+ }
+
clearMarks();
}
@@ -768,6 +799,12 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (onPerfEntry) {
+ performance.getEntriesByName('Next.js-render').forEach(onPerfEntry);
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(onPerfEntry);
+ }
+
clearMarks();
}
@@ -776,15 +813,13 @@ function clearMarks() {
['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(function (mark) {
return performance.clearMarks(mark);
});
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ ['Next.js-before-hydration', 'Next.js-hydration', 'Next.js-route-change-to-render', 'Next.js-render'].forEach(function (measure) {
+ return performance.clearMeasures(measure);
+ });
}
-function AppContainer(_ref4) {
- var children = _ref4.children;
+function AppContainer(_ref5) {
+ var children = _ref5.children;
return _react["default"].createElement(Container, {
fn: function fn(error) {
return renderError({
@@ -821,14 +856,14 @@ function doRender(_x4) {
function _doRender() {
_doRender = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
- _regeneratorRuntime.mark(function _callee4(_ref5) {
+ _regeneratorRuntime.mark(function _callee4(_ref6) {
var App, Component, props, err, _router2, pathname, _query, _asPath, AppTree, appCtx, appProps;
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
- App = _ref5.App, Component = _ref5.Component, props = _ref5.props, err = _ref5.err; // Usual getInitialProps fetching is handled in next/router
+ App = _ref6.App, Component = _ref6.Component, props = _ref6.props, err = _ref6.err; // Usual getInitialProps fetching is handled in next/router
// this is for when ErrorComponent gets replaced by Component by HMR
if (!(!props && Component && Component !== ErrorComponent && lastAppProps.Component === ErrorComponent)) {
@@ -1472,13 +1507,21 @@ function () {
}, {
key: "loadPage",
value: function loadPage(route) {
+ return this.loadPageScript(route).then(function (v) {
+ return v.page;
+ });
+ }
+ }, {
+ key: "loadPageScript",
+ value: function loadPageScript(route) {
var _this3 = this;
route = this.normalizeRoute(route);
return new _promise["default"](function (resolve, reject) {
var fire = function fire(_ref) {
var error = _ref.error,
- page = _ref.page;
+ page = _ref.page,
+ mod = _ref.mod;
_this3.pageRegisterEvents.off(route, fire);
@@ -1487,7 +1530,10 @@ function () {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page: page,
+ mod: mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1496,8 +1542,12 @@ function () {
if (cachedPage) {
var error = cachedPage.error,
- page = cachedPage.page;
- error ? reject(error) : resolve(page);
+ page = cachedPage.page,
+ mod = cachedPage.mod;
+ error ? reject(error) : resolve({
+ page: page,
+ mod: mod
+ });
return;
} // Register a listener to get the page
Diff for main-HASH.module.js
@@ -473,7 +473,7 @@ exports.router = router;
let ErrorComponent;
exports.ErrorComponent = ErrorComponent;
let Component;
-let App;
+let App, onPerfEntry;
class Container extends _react.default.Component {
componentDidCatch(err, info) {
@@ -531,7 +531,27 @@ function () {
if (false) {}
- App = yield pageLoader.loadPage('/_app');
+ const {
+ page: app,
+ mod
+ } = yield pageLoader.loadPageScript('/_app');
+ App = app;
+
+ if (mod && mod.unstable_onPerformanceData) {
+ onPerfEntry = function onPerfEntry(_ref3) {
+ let {
+ name,
+ startTime,
+ value
+ } = _ref3;
+ mod.unstable_onPerformanceData({
+ name,
+ startTime,
+ value
+ });
+ };
+ }
+
let initialErr = err;
try {
@@ -554,12 +574,12 @@ function () {
Component,
wrapApp,
err: initialErr,
- subscription: (_ref3, App) => {
+ subscription: (_ref4, App) => {
let {
Component,
props,
err
- } = _ref3;
+ } = _ref4;
render({
App,
Component,
@@ -672,6 +692,14 @@ function renderReactElement(reactEl, domEl) {
} else {
_reactDom.default.render(reactEl, domEl, markRenderComplete);
}
+
+ relayPaintMetrics();
+}
+
+function relayPaintMetrics() {
+ if (onPerfEntry) {
+ performance.getEntriesByType('paint').forEach(onPerfEntry);
+ }
}
function markHydrateComplete() {
@@ -680,6 +708,12 @@ function markHydrateComplete() {
performance.measure('Next.js-before-hydration', 'navigationStart', 'beforeRender');
performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate');
+
+ if (onPerfEntry) {
+ performance.getEntriesByName('Next.js-hydration').forEach(onPerfEntry);
+ performance.getEntriesByName('beforeRender').forEach(onPerfEntry);
+ }
+
clearMarks();
}
@@ -695,23 +729,25 @@ function markRenderComplete() {
performance.measure('Next.js-route-change-to-render', navStartEntries[0].name, 'beforeRender');
performance.measure('Next.js-render', 'beforeRender', 'afterRender');
+
+ if (onPerfEntry) {
+ performance.getEntriesByName('Next.js-render').forEach(onPerfEntry);
+ performance.getEntriesByName('Next.js-route-change-to-render').forEach(onPerfEntry);
+ }
+
clearMarks();
}
function clearMarks() {
;
['beforeRender', 'afterHydrate', 'afterRender', 'routeChange'].forEach(mark => performance.clearMarks(mark));
- /*
- * TODO: uncomment the following line when we have a way to
- * expose this to user code.
- */
- // performance.clearMeasures()
+ ['Next.js-before-hydration', 'Next.js-hydration', 'Next.js-route-change-to-render', 'Next.js-render'].forEach(measure => performance.clearMeasures(measure));
}
-function AppContainer(_ref4) {
+function AppContainer(_ref5) {
let {
children
- } = _ref4;
+ } = _ref5;
return _react.default.createElement(Container, {
fn: error => renderError({
App,
@@ -740,13 +776,13 @@ function doRender(_x4) {
}
function _doRender() {
- _doRender = (0, _asyncToGenerator2.default)(function* (_ref5) {
+ _doRender = (0, _asyncToGenerator2.default)(function* (_ref6) {
let {
App,
Component,
props,
err
- } = _ref5; // Usual getInitialProps fetching is handled in next/router
+ } = _ref6; // Usual getInitialProps fetching is handled in next/router
// this is for when ErrorComponent gets replaced by Component by HMR
if (!props && Component && Component !== ErrorComponent && lastAppProps.Component === ErrorComponent) {
@@ -1371,12 +1407,17 @@ class PageLoader {
}
loadPage(route) {
+ return this.loadPageScript(route).then(v => v.page);
+ }
+
+ loadPageScript(route) {
route = this.normalizeRoute(route);
return new _promise.default((resolve, reject) => {
const fire = _ref => {
let {
error,
- page
+ page,
+ mod
} = _ref;
this.pageRegisterEvents.off(route, fire);
delete this.loadingRoutes[route];
@@ -1384,7 +1425,10 @@ class PageLoader {
if (error) {
reject(error);
} else {
- resolve(page);
+ resolve({
+ page,
+ mod
+ });
}
}; // If there's a cached version of the page, let's use it.
@@ -1394,9 +1438,13 @@ class PageLoader {
if (cachedPage) {
const {
error,
- page
+ page,
+ mod
} = cachedPage;
- error ? reject(error) : resolve(page);
+ error ? reject(error) : resolve({
+ page,
+ mod
+ });
return;
} // Register a listener to get the page
Diff for index.html
@@ -12,7 +12,7 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-07fec87b6447d72c084b.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-006fa57c6c62f931d38d.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
as="script" crossorigin="anonymous" />
@@ -43,9 +43,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-edef09c027e510e38028.js"
+ <script src="/_next/static/runtime/main-94e8f065677622433517.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-07fec87b6447d72c084b.module.js"
+ <script src="/_next/static/runtime/main-006fa57c6c62f931d38d.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.js"
async="" crossorigin="anonymous" nomodule=""></script>
Diff for link.html
@@ -16,7 +16,7 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-07fec87b6447d72c084b.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-006fa57c6c62f931d38d.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/BUILD_ID/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
@@ -56,9 +56,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-edef09c027e510e38028.js"
+ <script src="/_next/static/runtime/main-94e8f065677622433517.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-07fec87b6447d72c084b.module.js"
+ <script src="/_next/static/runtime/main-006fa57c6c62f931d38d.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -16,7 +16,7 @@
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
as="script" crossorigin="anonymous" />
- <link rel="preload" href="/_next/static/runtime/main-07fec87b6447d72c084b.module.js"
+ <link rel="preload" href="/_next/static/runtime/main-006fa57c6c62f931d38d.module.js"
as="script" crossorigin="anonymous" />
<link rel="preload" href="/_next/static/BUILD_ID/_buildManifest.module.js"
as="script" crossorigin="anonymous" />
@@ -54,9 +54,9 @@
async="" crossorigin="anonymous" nomodule=""></script>
<script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.119f7caa0f0e5f3f7629.module.js"
async="" crossorigin="anonymous" type="module"></script>
- <script src="/_next/static/runtime/main-edef09c027e510e38028.js"
+ <script src="/_next/static/runtime/main-94e8f065677622433517.js"
async="" crossorigin="anonymous" nomodule=""></script>
- <script src="/_next/static/runtime/main-07fec87b6447d72c084b.module.js"
+ <script src="/_next/static/runtime/main-006fa57c6c62f931d38d.module.js"
async="" crossorigin="anonymous" type="module"></script>
<script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
crossorigin="anonymous" nomodule=""></script>
Serverless Mode (Increase detected ⚠️ )
General Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
buildDuration | 14.9s | 14.8s | -89ms |
nodeModulesSize | 48.3 MB | 48.3 MB |
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.js | 18.1 kB | 18.9 kB | |
main-HASH.js gzip | 6.61 kB | 6.79 kB | |
webpack-HASH.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
4952ddcd88e7..2b8407376.js | 21.9 kB | 21.9 kB | ✓ |
4952ddcd88e7..7376.js gzip | 7.81 kB | 7.81 kB | ✓ |
de003c3a9d30..6604acae7.js | 43.2 kB | 43.2 kB | ✓ |
de003c3a9d30..cae7.js gzip | 15.5 kB | 15.5 kB | ✓ |
framework.5b..dbaff70d3.js | 125 kB | 125 kB | ✓ |
framework.5b..70d3.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 210 kB | 211 kB |
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
main-HASH.module.js | 16.4 kB | 17.2 kB | |
main-HASH.module.js gzip | 6.35 kB | 6.52 kB | |
webpack-HASH.module.js | 1.53 kB | 1.53 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..42.module.js | 45.6 kB | 45.6 kB | ✓ |
de003c3a9d30..dule.js gzip | 16.5 kB | 16.5 kB | ✓ |
framework.5b..d3.module.js | 125 kB | 125 kB | ✓ |
framework.5b..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 189 kB | 190 kB |
Client Pages
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.js | 1.81 kB | 1.81 kB | ✓ |
_app.js gzip | 873 B | 873 B | ✓ |
_error.js | 12 kB | 12 kB | ✓ |
_error.js gzip | 4.73 kB | 4.73 kB | ✓ |
hooks.js | 12.7 kB | 12.7 kB | ✓ |
hooks.js gzip | 4.79 kB | 4.79 kB | ✓ |
index.js | 318 B | 318 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js | 8.14 kB | 8.14 kB | ✓ |
link.js gzip | 3.5 kB | 3.5 kB | ✓ |
routerDirect.js | 408 B | 408 B | ✓ |
routerDirect.js gzip | 281 B | 281 B | ✓ |
withRouter.js | 419 B | 419 B | ✓ |
withRouter.js gzip | 280 B | 280 B | ✓ |
Overall change | 35.8 kB | 35.8 kB | ✓ |
Client Pages Modern
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_app.module.js | 1.7 kB | 1.7 kB | ✓ |
_app.module.js gzip | 832 B | 832 B | ✓ |
_error.module.js | 23.3 kB | 23.3 kB | ✓ |
_error.module.js gzip | 8.59 kB | 8.59 kB | ✓ |
hooks.module.js | 1.52 kB | 1.52 kB | ✓ |
hooks.module.js gzip | 793 B | 793 B | ✓ |
index.module.js | 294 B | 294 B | ✓ |
index.module.js gzip | 223 B | 223 B | ✓ |
link.module.js | 8.53 kB | 8.53 kB | ✓ |
link.module.js gzip | 3.68 kB | 3.68 kB | ✓ |
routerDirect.module.js | 394 B | 394 B | ✓ |
routerDirect..dule.js gzip | 281 B | 281 B | ✓ |
withRouter.module.js | 404 B | 404 B | ✓ |
withRouter.m..dule.js gzip | 278 B | 278 B | ✓ |
Overall change | 36.1 kB | 36.1 kB | ✓ |
Client Build Manifests
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_buildManifest.js | 81 B | 81 B | ✓ |
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManifest.module.js | 81 B | 81 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 162 B | 162 B | ✓ |
Serverless bundles
zeit/next.js canary | azukaru/next.js relay-analytics | Change | |
---|---|---|---|
_error.js | 253 kB | 253 kB | ✓ |
_error.js gzip | 67.9 kB | 67.9 kB | -2 B |
hooks.html | 3.75 kB | 3.75 kB | ✓ |
hooks.html gzip | 980 B | 980 B | ✓ |
index.js | 254 kB | 254 kB | ✓ |
index.js gzip | 68.2 kB | 68.2 kB | -2 B |
link.js | 261 kB | 261 kB | ✓ |
link.js gzip | 70.3 kB | 70.3 kB | -3 B |
routerDirect.js | 255 kB | 255 kB | ✓ |
routerDirect.js gzip | 68.3 kB | 68.3 kB | -2 B |
withRouter.js | 254 kB | 254 kB | ✓ |
withRouter.js gzip | 68.4 kB | 68.4 kB | -2 B |
Overall change | 1.28 MB | 1.28 MB | ✓ |
Commit: ef1609d