-
Notifications
You must be signed in to change notification settings - Fork 27.5k
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
Getting Started Docs: Add Upgrade
page
#74025
base: canary
Are you sure you want to change the base?
Conversation
All broken links are now fixed, thank you! |
Upgrade
page
Stats from current PRDefault BuildGeneral
Client Bundles (main, webpack)
Legacy Client Bundles (polyfills)
Client Pages
Client Build Manifests
Rendered Page Sizes
Edge SSR bundle Size
Middleware size
Next Runtimes
build cache
Diff detailsDiff for middleware.jsDiff too large to display Diff for edge-ssr.jsDiff too large to display Diff for image-HASH.js@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[2983],
{
- /***/ 3705: /***/ (
+ /***/ 8255: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/image",
function () {
- return __webpack_require__(8448);
+ return __webpack_require__(8926);
},
]);
if (false) {
@@ -18,7 +18,7 @@
/***/
},
- /***/ 7342: /***/ (module, exports, __webpack_require__) => {
+ /***/ 4369: /***/ (module, exports, __webpack_require__) => {
"use strict";
/* __next_internal_client_entry_do_not_use__ cjs */
Object.defineProperty(exports, "__esModule", {
@@ -40,17 +40,17 @@
__webpack_require__(6049)
);
const _head = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(7196)
+ __webpack_require__(956)
);
- const _getimgprops = __webpack_require__(2661);
- const _imageconfig = __webpack_require__(72);
- const _imageconfigcontextsharedruntime = __webpack_require__(6386);
- const _warnonce = __webpack_require__(4496);
- const _routercontextsharedruntime = __webpack_require__(6443);
+ const _getimgprops = __webpack_require__(485);
+ const _imageconfig = __webpack_require__(4664);
+ const _imageconfigcontextsharedruntime = __webpack_require__(1250);
+ const _warnonce = __webpack_require__(1648);
+ const _routercontextsharedruntime = __webpack_require__(907);
const _imageloader = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(3433)
+ __webpack_require__(6489)
);
- const _usemergedref = __webpack_require__(1942);
+ const _usemergedref = __webpack_require__(5942);
// This is replaced by webpack define plugin
const configEnv = {
deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -302,22 +302,16 @@
_imageconfigcontextsharedruntime.ImageConfigContext
);
const config = (0, _react.useMemo)(() => {
- var _c_qualities;
const c =
configEnv || configContext || _imageconfig.imageConfigDefault;
const allSizes = [...c.deviceSizes, ...c.imageSizes].sort(
(a, b) => a - b
);
const deviceSizes = c.deviceSizes.sort((a, b) => a - b);
- const qualities =
- (_c_qualities = c.qualities) == null
- ? void 0
- : _c_qualities.sort((a, b) => a - b);
return {
...c,
allSizes,
deviceSizes,
- qualities,
};
}, [configContext]);
const { onLoad, onLoadingComplete } = props;
@@ -377,7 +371,7 @@
/***/
},
- /***/ 1942: /***/ (module, exports, __webpack_require__) => {
+ /***/ 5942: /***/ (module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -438,7 +432,7 @@
/***/
},
- /***/ 2661: /***/ (
+ /***/ 485: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -454,9 +448,9 @@
return getImgProps;
},
});
- const _warnonce = __webpack_require__(4496);
- const _imageblursvg = __webpack_require__(4796);
- const _imageconfig = __webpack_require__(72);
+ const _warnonce = __webpack_require__(1648);
+ const _imageblursvg = __webpack_require__(4812);
+ const _imageconfig = __webpack_require__(4664);
const VALID_LOADING_VALUES =
/* unused pure expression or super */ null && [
"lazy",
@@ -612,20 +606,14 @@
if ("allSizes" in c) {
config = c;
} else {
- var _c_qualities;
const allSizes = [...c.deviceSizes, ...c.imageSizes].sort(
(a, b) => a - b
);
const deviceSizes = c.deviceSizes.sort((a, b) => a - b);
- const qualities =
- (_c_qualities = c.qualities) == null
- ? void 0
- : _c_qualities.sort((a, b) => a - b);
config = {
...c,
allSizes,
deviceSizes,
- qualities,
};
}
if (typeof defaultLoader === "undefined") {
@@ -864,7 +852,7 @@
/***/
},
- /***/ 4796: /***/ (__unused_webpack_module, exports) => {
+ /***/ 4812: /***/ (__unused_webpack_module, exports) => {
"use strict";
/**
* A shared function, used on both client and server, to generate a SVG blur placeholder.
@@ -919,7 +907,7 @@
/***/
},
- /***/ 1969: /***/ (
+ /***/ 8273: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -946,10 +934,10 @@
},
});
const _interop_require_default = __webpack_require__(173);
- const _getimgprops = __webpack_require__(2661);
- const _imagecomponent = __webpack_require__(7342);
+ const _getimgprops = __webpack_require__(485);
+ const _imagecomponent = __webpack_require__(4369);
const _imageloader = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(3433)
+ __webpack_require__(6489)
);
function getImageProps(imgProps) {
const { props } = (0, _getimgprops.getImgProps)(imgProps, {
@@ -981,7 +969,7 @@
/***/
},
- /***/ 3433: /***/ (__unused_webpack_module, exports) => {
+ /***/ 6489: /***/ (__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -993,22 +981,10 @@
return _default;
},
});
- const DEFAULT_Q = 75;
function defaultLoader(param) {
let { config, src, width, quality } = param;
- var _config_qualities;
if (false) {
}
- const q =
- quality ||
- ((_config_qualities = config.qualities) == null
- ? void 0
- : _config_qualities.reduce((prev, cur) =>
- Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q)
- ? cur
- : prev
- )) ||
- DEFAULT_Q;
return (
config.path +
"?url=" +
@@ -1016,7 +992,7 @@
"&w=" +
width +
"&q=" +
- q +
+ (quality || 75) +
(src.startsWith("/_next/static/media/") && false ? 0 : "")
);
}
@@ -1028,7 +1004,7 @@
/***/
},
- /***/ 8448: /***/ (
+ /***/ 8926: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -1045,8 +1021,8 @@
// EXTERNAL MODULE: ./node_modules/.pnpm/react@19.0.0/node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(5105);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+main-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/image.js
- var next_image = __webpack_require__(8140);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@file+..+diff-repo+packages+next+next-packed.tgz_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/next/image.js
+ var next_image = __webpack_require__(5434);
var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // ./pages/nextjs.png
/* harmony default export */ const nextjs = {
src: "/_next/static/media/nextjs.cae0b805.png",
@@ -1076,12 +1052,12 @@
/***/
},
- /***/ 8140: /***/ (
+ /***/ 5434: /***/ (
module,
__unused_webpack_exports,
__webpack_require__
) => {
- module.exports = __webpack_require__(1969);
+ module.exports = __webpack_require__(8273);
/***/
},
@@ -1091,7 +1067,7 @@
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(3705)
+ __webpack_exec__(8255)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__; Diff for 1187-HASH.jsDiff too large to display Diff for 8377-HASH.js@@ -1,8 +1,8 @@
"use strict";
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
- [8377],
+ [2727],
{
- /***/ 8377: /***/ (module, exports, __webpack_require__) => {
+ /***/ 2727: /***/ (module, exports, __webpack_require__) => {
/* __next_internal_client_entry_do_not_use__ cjs */
Object.defineProperty(exports, "__esModule", {
value: true,
@@ -13,27 +13,27 @@
return Image;
},
});
- const _interop_require_default = __webpack_require__(2952);
- const _interop_require_wildcard = __webpack_require__(333);
- const _jsxruntime = __webpack_require__(3094);
+ const _interop_require_default = __webpack_require__(384);
+ const _interop_require_wildcard = __webpack_require__(4261);
+ const _jsxruntime = __webpack_require__(7048);
const _react = /*#__PURE__*/ _interop_require_wildcard._(
- __webpack_require__(1446)
+ __webpack_require__(228)
);
const _reactdom = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(8307)
+ __webpack_require__(9221)
);
const _head = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(8050)
+ __webpack_require__(1116)
);
- const _getimgprops = __webpack_require__(3201);
- const _imageconfig = __webpack_require__(6678);
- const _imageconfigcontextsharedruntime = __webpack_require__(578);
- const _warnonce = __webpack_require__(1971);
- const _routercontextsharedruntime = __webpack_require__(7795);
+ const _getimgprops = __webpack_require__(5763);
+ const _imageconfig = __webpack_require__(6224);
+ const _imageconfigcontextsharedruntime = __webpack_require__(6720);
+ const _warnonce = __webpack_require__(894);
+ const _routercontextsharedruntime = __webpack_require__(9093);
const _imageloader = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(1315)
+ __webpack_require__(2809)
);
- const _usemergedref = __webpack_require__(592);
+ const _usemergedref = __webpack_require__(1329);
// This is replaced by webpack define plugin
const configEnv = {
deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -286,22 +286,16 @@
_imageconfigcontextsharedruntime.ImageConfigContext
);
const config = (0, _react.useMemo)(() => {
- var _c_qualities;
const c =
configEnv || configContext || _imageconfig.imageConfigDefault;
const allSizes = [...c.deviceSizes, ...c.imageSizes].sort(
(a, b) => a - b
);
const deviceSizes = c.deviceSizes.sort((a, b) => a - b);
- const qualities =
- (_c_qualities = c.qualities) == null
- ? void 0
- : _c_qualities.sort((a, b) => a - b);
return {
...c,
allSizes,
deviceSizes,
- qualities,
};
}, [configContext]);
const { onLoad, onLoadingComplete } = props;
@@ -361,7 +355,7 @@
/***/
},
- /***/ 592: /***/ (module, exports, __webpack_require__) => {
+ /***/ 1329: /***/ (module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", {
value: true,
});
@@ -371,7 +365,7 @@
return useMergedRef;
},
});
- const _react = __webpack_require__(1446);
+ const _react = __webpack_require__(228);
function useMergedRef(refA, refB) {
const cleanupA = (0, _react.useRef)(() => {});
const cleanupB = (0, _react.useRef)(() => {});
@@ -420,7 +414,7 @@
/***/
},
- /***/ 5318: /***/ (
+ /***/ 272: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -434,9 +428,9 @@
return AmpStateContext;
},
});
- const _interop_require_default = __webpack_require__(2952);
+ const _interop_require_default = __webpack_require__(384);
const _react = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(1446)
+ __webpack_require__(228)
);
const AmpStateContext = _react.default.createContext({});
if (false) {
@@ -445,7 +439,7 @@
/***/
},
- /***/ 1210: /***/ (__unused_webpack_module, exports) => {
+ /***/ 1467: /***/ (__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", {
value: true,
});
@@ -467,7 +461,7 @@
/***/
},
- /***/ 3201: /***/ (
+ /***/ 5763: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -481,9 +475,9 @@
return getImgProps;
},
});
- const _warnonce = __webpack_require__(1971);
- const _imageblursvg = __webpack_require__(3482);
- const _imageconfig = __webpack_require__(6678);
+ const _warnonce = __webpack_require__(894);
+ const _imageblursvg = __webpack_require__(5868);
+ const _imageconfig = __webpack_require__(6224);
const VALID_LOADING_VALUES =
/* unused pure expression or super */ null && [
"lazy",
@@ -639,20 +633,14 @@
if ("allSizes" in c) {
config = c;
} else {
- var _c_qualities;
const allSizes = [...c.deviceSizes, ...c.imageSizes].sort(
(a, b) => a - b
);
const deviceSizes = c.deviceSizes.sort((a, b) => a - b);
- const qualities =
- (_c_qualities = c.qualities) == null
- ? void 0
- : _c_qualities.sort((a, b) => a - b);
config = {
...c,
allSizes,
deviceSizes,
- qualities,
};
}
if (typeof defaultLoader === "undefined") {
@@ -891,8 +879,8 @@
/***/
},
- /***/ 8050: /***/ (module, exports, __webpack_require__) => {
- /* provided dependency */ var process = __webpack_require__(6611);
+ /***/ 1116: /***/ (module, exports, __webpack_require__) => {
+ /* provided dependency */ var process = __webpack_require__(9829);
/* __next_internal_client_entry_do_not_use__ cjs */
Object.defineProperty(exports, "__esModule", {
value: true,
@@ -913,19 +901,19 @@
return defaultHead;
},
});
- const _interop_require_default = __webpack_require__(2952);
- const _interop_require_wildcard = __webpack_require__(333);
- const _jsxruntime = __webpack_require__(3094);
+ const _interop_require_default = __webpack_require__(384);
+ const _interop_require_wildcard = __webpack_require__(4261);
+ const _jsxruntime = __webpack_require__(7048);
const _react = /*#__PURE__*/ _interop_require_wildcard._(
- __webpack_require__(1446)
+ __webpack_require__(228)
);
const _sideeffect = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(4607)
+ __webpack_require__(4101)
);
- const _ampcontextsharedruntime = __webpack_require__(5318);
- const _headmanagercontextsharedruntime = __webpack_require__(7060);
- const _ampmode = __webpack_require__(1210);
- const _warnonce = __webpack_require__(1971);
+ const _ampcontextsharedruntime = __webpack_require__(272);
+ const _headmanagercontextsharedruntime = __webpack_require__(1790);
+ const _ampmode = __webpack_require__(1467);
+ const _warnonce = __webpack_require__(894);
function defaultHead(inAmpMode) {
if (inAmpMode === void 0) inAmpMode = false;
const head = [
@@ -1109,7 +1097,7 @@
/***/
},
- /***/ 3482: /***/ (__unused_webpack_module, exports) => {
+ /***/ 5868: /***/ (__unused_webpack_module, exports) => {
/**
* A shared function, used on both client and server, to generate a SVG blur placeholder.
*/
@@ -1163,7 +1151,7 @@
/***/
},
- /***/ 578: /***/ (
+ /***/ 6720: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -1177,11 +1165,11 @@
return ImageConfigContext;
},
});
- const _interop_require_default = __webpack_require__(2952);
+ const _interop_require_default = __webpack_require__(384);
const _react = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(1446)
+ __webpack_require__(228)
);
- const _imageconfig = __webpack_require__(6678);
+ const _imageconfig = __webpack_require__(6224);
const ImageConfigContext = _react.default.createContext(
_imageconfig.imageConfigDefault
);
@@ -1191,7 +1179,7 @@
/***/
},
- /***/ 6678: /***/ (__unused_webpack_module, exports) => {
+ /***/ 6224: /***/ (__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", {
value: true,
});
@@ -1233,14 +1221,13 @@
contentDispositionType: "attachment",
localPatterns: undefined,
remotePatterns: [],
- qualities: undefined,
unoptimized: false,
}; //# sourceMappingURL=image-config.js.map
/***/
},
- /***/ 1315: /***/ (__unused_webpack_module, exports) => {
+ /***/ 2809: /***/ (__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", {
value: true,
});
@@ -1250,22 +1237,10 @@
return _default;
},
});
- const DEFAULT_Q = 75;
function defaultLoader(param) {
let { config, src, width, quality } = param;
- var _config_qualities;
if (false) {
}
- const q =
- quality ||
- ((_config_qualities = config.qualities) == null
- ? void 0
- : _config_qualities.reduce((prev, cur) =>
- Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q)
- ? cur
- : prev
- )) ||
- DEFAULT_Q;
return (
config.path +
"?url=" +
@@ -1273,7 +1248,7 @@
"&w=" +
width +
"&q=" +
- q +
+ (quality || 75) +
(src.startsWith("/_next/static/media/") && false ? 0 : "")
);
}
@@ -1285,7 +1260,7 @@
/***/
},
- /***/ 7795: /***/ (
+ /***/ 9093: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -1299,9 +1274,9 @@
return RouterContext;
},
});
- const _interop_require_default = __webpack_require__(2952);
+ const _interop_require_default = __webpack_require__(384);
const _react = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(1446)
+ __webpack_require__(228)
);
const RouterContext = _react.default.createContext(null);
if (false) {
@@ -1310,7 +1285,7 @@
/***/
},
- /***/ 4607: /***/ (
+ /***/ 4101: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -1324,7 +1299,7 @@
return SideEffect;
},
});
- const _react = __webpack_require__(1446);
+ const _react = __webpack_require__(228);
const isServer = typeof window === "undefined";
const useClientOnlyLayoutEffect = isServer
? () => {} Diff for bccd1874-HASH.jsDiff too large to display Diff for main-HASH.jsDiff too large to display Diff for app-page-exp..ntime.dev.jsfailed to diff Diff for app-page-exp..time.prod.jsDiff too large to display Diff for app-page-tur..time.prod.jsDiff too large to display Diff for app-page-tur..time.prod.jsDiff too large to display Diff for app-page.runtime.dev.jsfailed to diff Diff for app-page.runtime.prod.jsDiff too large to display Diff for app-route-ex..ntime.dev.jsDiff too large to display Diff for app-route-ex..time.prod.jsDiff too large to display Diff for app-route-tu..time.prod.jsDiff too large to display Diff for app-route-tu..time.prod.jsDiff too large to display Diff for app-route.runtime.dev.jsDiff too large to display Diff for app-route.ru..time.prod.jsDiff too large to display Diff for pages-turbo...time.prod.jsDiff too large to display Diff for pages.runtime.dev.jsDiff too large to display Diff for pages.runtime.prod.jsDiff too large to display Diff for server.runtime.prod.jsfailed to diff |
Failing test suitesCommit: 4e11372
Expand output● use-cache-close-over-function › should fail the build with an error
Read more about building and testing Next.js in contributing.md.
Expand output● AMP Validation on Export › production mode › should have shown errors during build
Read more about building and testing Next.js in contributing.md.
Expand output● Error overlay for hydration errors in App router › should show the highlighted bad nesting html snippet when bad nesting happened
● Error overlay for hydration errors in App router › should collapse and uncollapse properly when there are many frames
Read more about building and testing Next.js in contributing.md.
Expand output● Production Usage › should navigate through history after query update
● Production Usage › should handle query/hash correctly during query updating #hello? $search
● Production Usage › should handle query/hash correctly during query updating #? $search
● Production Usage › should handle query/hash correctly during query updating ## $search
● Production Usage › should handle query/hash correctly during query updating ##? $search
● Production Usage › should handle query/hash correctly during query updating ##hello? $search
● Production Usage › should handle query/hash correctly during query updating ##hello $search
● Production Usage › should handle query/hash correctly during query updating #hello?world $search
● Production Usage › should handle query/hash correctly during query updating #a ?hello=world
● Production Usage › should handle query/hash correctly during query updating #a ?hello
● Production Usage › should handle query/hash correctly during query updating #a ?hello=
● Production Usage › should not show target deprecation warning
● Production Usage › should respond with 405 for POST to static page
● Production Usage › should contain generated page count in output
● Production Usage › should output traces
● Production Usage › should not contain currentScript usage for publicPath
● Production Usage › should not contain amp, rsc APIs in main chunk
● Production Usage › With basic usage › should render the page
● Production Usage › With basic usage › should polyfill Node.js modules
● Production Usage › With basic usage › should allow etag header support
● Production Usage › With basic usage › should allow etag header support with getStaticProps
● Production Usage › With basic usage › should allow etag header support with getServerSideProps
● Production Usage › With basic usage › should have X-Powered-By header support
● Production Usage › With basic usage › should render 404 for routes that do not exist
● Production Usage › With basic usage › should render 404 for /_next/static route
● Production Usage › With basic usage › should render 200 for POST on page
● Production Usage › With basic usage › should render 404 for POST on missing page
● Production Usage › With basic usage › should render 404 for _next routes that do not exist
● Production Usage › With basic usage › should render 404 even if the HTTP method is not GET or HEAD
● Production Usage › With basic usage › should render 404 for dotfiles in /static
● Production Usage › With basic usage › should return 405 method on static then GET and HEAD
● Production Usage › With basic usage › should return 412 on static file when If-Unmodified-Since is provided and file is modified
● Production Usage › With basic usage › should return 200 on static file if If-Unmodified-Since is invalid date
● Production Usage › With basic usage › should set Content-Length header
● Production Usage › With basic usage › should set Cache-Control header
● Production Usage › With basic usage › should set correct Cache-Control header for static 404s
● Production Usage › With basic usage › should block special pages
● Production Usage › With basic usage › should not contain customServer in NEXT_DATA
● Production Usage › API routes › should work with pages/api/index.js
● Production Usage › API routes › should work with pages/api/hello.js
● Production Usage › API routes › does not work with pages/api/readfile-dirname.js
● Production Usage › API routes › should work with pages/api/readfile-processcwd.js
● Production Usage › API routes › should work with dynamic params and search string
● Production Usage › With navigation › should navigate via client side
● Production Usage › With navigation › should navigate to nested index via client side
● Production Usage › With navigation › should reload page successfully (on bad link)
● Production Usage › With navigation › should reload page successfully (on bad data fetch)
● Production Usage › should navigate to external site and back
● Production Usage › should navigate to page with CSS and back
● Production Usage › should navigate to external site and back (with query)
● Production Usage › should change query correctly
● Production Usage › Runtime errors › should render a server side error on the client side
● Production Usage › Runtime errors › should render a client side component error
● Production Usage › Runtime errors › should call getInitialProps on _error page during a client side component error
● Production Usage › Misc › should handle already finished responses
● Production Usage › Misc › should allow to access /static/ and /_next/
● Production Usage › Misc › Should allow access to public files
● Production Usage › Misc › should reload the page on page script error
● Production Usage › Misc › should have default runtime values when not defined
● Production Usage › Misc › should not have runtimeConfig in NEXT_DATA
● Production Usage › Misc › should add autoExport for auto pre-rendered pages
● Production Usage › Misc › should not add autoExport for non pre-rendered pages
● Production Usage › Misc › should add prefetch tags when Link prefetch prop is used
● Production Usage › Misc › It does not add a timestamp to link tags with prefetch attribute
● Production Usage › Misc › should reload the page on page script error with prefetch
● Production Usage › should not expose the compiled page file in development
● Production Usage › should not put backslashes in pages-manifest.json
● Production Usage › should handle failed param decoding
● Production Usage › should replace static pages with HTML files
● Production Usage › should not replace non-static pages with HTML files
● Production Usage › should handle AMP correctly in IE
● Production Usage › should warn when prefetch is true
● Production Usage › should not emit stats
● Production Usage › should contain the Next.js version in window export
● Production Usage › should clear all core performance marks
● Production Usage › should not clear custom performance marks
● Production Usage › should have defer on all script tags
● Production Usage › should only have one DOCTYPE
● Production Usage › should preserve query when hard navigating from page 404
● Production Usage › should remove placeholder for next/image correctly
● Production Usage › Dynamic import › default behavior › should render dynamic import components
● Production Usage › Dynamic import › default behavior › should render one dynamically imported component and load its css files
● Production Usage › Dynamic import › default behavior › should render three dynamically imported components and load their css files
● Production Usage › Dynamic import › default behavior › should bundle two css modules for one dynamically imported component into one css file
● Production Usage › Dynamic import › default behavior › should bundle two css modules for nested components into one css file
● Production Usage › Dynamic import › default behavior › should not remove css styles for same css file between page transitions
● Production Usage › Dynamic import › default behavior › should output two css files even in case of three css module files while one is shared across files
● Production Usage › Dynamic import › default behavior › should render one dynamically imported component without any css files
● Production Usage › Dynamic import › default behavior › should render even there are no physical chunk exists
● Production Usage › Dynamic import › ssr:false option › should not render loading on the server side
● Production Usage › Dynamic import › ssr:false option › should render the component on client side
● Production Usage › Dynamic import › ssr:true option › should render the component on the server side
● Production Usage › Dynamic import › ssr:true option › should render the component on client side
● Production Usage › Dynamic import › custom loading › should render custom loading on the server side when
● Production Usage › Dynamic import › custom loading › should render the component on client side
● Production Usage › process.env › should set process.env.NODE_ENV in production
● Production Usage › process.browser › should eliminate server only code on the client
● Production Usage › process.browser › should eliminate client only code on the server
● Production Usage › With Security Related Issues › should handle invalid URL properly
● Production Usage › With Security Related Issues › should only access files inside .next directory
● Production Usage › With Security Related Issues › should not allow accessing files outside .next/static directory
● Production Usage › With Security Related Issues › should not leak the user's home directory into the build
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using single quotes
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using double quotes
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using semicolons and double quotes
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using semicolons and single quotes
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using src
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using querystring
● Production Usage › With Security Related Issues › should prevent URI based XSS attacks using querystring and quotes
● Production Usage › With Security Related Issues › should handle encoded value in the pathname correctly \
● Production Usage › With Security Related Issues › should handle encoded value in the pathname correctly %
● Production Usage › With Security Related Issues › should handle encoded value in the query correctly
● Production Usage › With Security Related Issues › should handle encoded value in the pathname correctly /
● Production Usage › With Security Related Issues › should handle encoded value in the pathname to query correctly (/)
● Production Usage › With Security Related Issues › should handle encoded / value for trailing slash correctly
● Production Usage › With Security Related Issues › should not execute script embedded inside svg image, even if dangerouslyAllowSVG=true
Read more about building and testing Next.js in contributing.md. |
Closes: https://linear.app/vercel/issue/DOC-4072/page-upgrading