5.8.1 (2024-10-21)
5.8.0 (2024-10-16)
- adjust cache-control handling for [email protected] (#2666) (7e5253d)
- use alternative way of gathering api functions to anaylze (#2654) (e4916da)
5.7.4 (2024-10-09)
5.7.3 (2024-10-01)
5.7.2 (2024-09-17)
5.7.1 (2024-09-06)
- generate correct import path when 'src' directory is used and middleware imports wasm module (#2583) (b54b682)
- update cache handler to accommodate changes in next@canary (#2572) (83f685e)
5.7.0 (2024-08-26)
5.6.0 (2024-07-29)
- apply type: module only to runtime modules (#2549) (325968d)
- edge-middleware i18n matching (#2555) (f02ef88)
5.5.1 (2024-07-08)
5.5.0 (2024-07-04)
5.4.0 (2024-06-28)
- warn when netlify form detected (195b8b2)
- set netlify-cache-tag for not prerendered content (#2495) (8fe6676)
- track revalidate / cdn purge to ensure it finishes execution and is not suspended mid-execution (#2490) (5a0fec5)
5.3.3 (2024-06-18)
- middleware i18n normalization (#2483) (a9efa9c)
- set systemlogger debug log level for debug requests (#571) (a6d09f3)
- update cache handler to accomodate changes in next@canary (#2480) (f4eeaa2)
- update in-memory prerender manifest with information from full route cache (#579) (c91e257)
5.3.2 (2024-05-28)
- allow parallel routes to resolve without routing to a 404 page (#516) (04dc3ec)
- ensure locale is in next response url to allow page locale to inferred downstream (#533) (59b575e)
- manually triggered notFound pages in page-router for older versions of next (#541) (30ef981)
5.3.1 (2024-05-22)
- deps: update dependency @netlify/functions to ^2.7.0 (964ef13)
- deps: update dependency @netlify/plugin-nextjs to ^5.3.0 (014be75)
- don't warn about PPR (#506) (f62c009)
5.3.0 (2024-05-20)
- deps: update dependency chart.js to v4.4.3 (ee6e185)
- leverage system logger for debug logs (instead of console) (#467) (b352d96)
5.2.2 (2024-05-07)
- normalize trailing slash when handling middleware rewrites (#448) (2012922)
- separate response cache if debug logging header is used (#384) (68f8e79)
- support revalidating multiple tags at once (#464) (62ea699)
5.2.1 (2024-05-02)
5.2.0 (2024-04-30)
- apply useRegionalBlobs replacement for non-monorepo template (#431) (d73a912)
- disable regional blobs until feature is ready for release (#433) (9620588)
- remove blob folder in pre-dev (#430) (3749c3c)
- track background work (#407) (296e8fe)
- track background work pre batchers (#423) (292331d)
5.1.2 (2024-04-18)
5.1.1 (2024-04-17)
5.1.0 (2024-04-16)
- add cdn-cache-control headers to cacheable route handler responses (#399) (f4c588c)
- fail the build when advanced api routes are used (#403) (275f488)
5.0.0 (2024-04-02)
- add build time o11ty to the runtime (#372) (93036f7)
- add first part of the open telemetry integration to the runtime (#232) (8b17f09)
- add middleware routing (#146) (8fc84c5)
- add mono repository support (#123) (53f0f36)
- add next.js version check and fail the build if version not satisfied (#291) (72101f3)
- add system logging to middleware handler (#174) (1eee565)
- add systemlog shim (#127) (dab9ead)
- check for root publish dir (#292) (f2084b8)
- fail build if BUILD_ID is not found at location it will be read from in runtime (#313) (d06ca25)
- handle /_next/image through Netlify Image CDN for local images (#149) (4bf8641)
- normalise URLs in edge middleware (#176) (5155474)
- remove x-nextjs-cache header and add Cache-Status instead (#158) (5b477db)
- start moving to SugaredTracer and collect spans manually to be able to create 'server-timing' header when debugging (#358) (311fafe)
- stop running middleware at the origin (#125) (3e743de)
- support also x-next-debug-logging to enable server-timing (#359) (d045755)
- support edge middleware (#114) (a1eaca3)
- support nx integrated setups inside runtime (#251) (994be8e)
- support static export (#349) (e2737bc)
- swap publish/static dirs (#93) (a31816e)
- use blob key encoding (#108) (1277f85)
- use in-source path over redirects for Server Handler (#122) (aaf12cc)
- use new blob store api (#100) (0f4eb7a)
- use prerenderManifest data instead of globbing when copying prerendered content (#105) (60594f1)
- write tags manifest at build time to simplify request time response tagging (#94) (a0c93ca)
- apply permanent cdn-cache-control for fully static page (#274) (9c2f0bb)
- avoid PPR build error (#286) (8217f50)
- await copyStaticExport (#374) (1c814f8)
- blob key collisions (#212) (7c33ac3)
- bundle edge chunks with lambda (#152) (c5008a4)
- cache freshness for ISR content (#235) (4a0c285)
- concatenate all edge chunks (#319) (b3aaed6)
- copy-next-code on windows (#297) (077cc18)
- correctly handle middleware header mutations (#225) (da7aa22)
- correctly handle query params on data rewrites (#196) (abd7509)
- correctly serve images by storing binary as base64 (#241) (22afaa8)
- create server handler in sequential steps (#373) (96f8fe7)
- deps: update dependency @netlify/blobs to ^4.2.0 (#86) (77c2a9c)
- deps: update dependency @netlify/blobs to v6 (#92) (f462438)
- deps: update dependency @netlify/functions to ^2.4.0 (c566ffa)
- disable transfer-encoding leading to problems in fastly (#333) (4080e1c)
- don't mutate route data, instead create new object to set as blob (#391) (98eb35f)
- don't run middleware on rewrite target (#270) (c6af678)
- don't set SWR cdn cache control on stale responses (#259) (7555b68)
- don't use windows path separators for path templating in monorepo (#293) (5b26311)
- ensure cdn cache control only set for get and head methods (#137) (bf63aa8)
- fetch cache tag invalidation (#268) (ede6277)
- fix proxying on next@<14.0.2 (#366) (83e9a39)
- fixes an issue where the runtime was not working with pnpm package manager (#96) (b77512e)
- fixes an issue where the symlinks where not correctly preserved for pnpm monorepos (#216) (9c35799)
- fixes the runtime inside monorepos like turborepo (#204) (219588e)
- fixes the usage of a custom distDir (#269) (6a35de6)
- handle ipx redirect that visitors might have browser cached from v4 (#390) (9c0490c)
- handle locales in middleware redirects (#198) (97af130)
- handle long blob names by truncating them (#182) (b55ca06)
- handle middleware rewrite bodies and loops (#193) (fd3c754)
- handle middleware rewrites to in data requests (#180) (8b5687c)
- handle multiple matchers for middleware (#203) (8e9dbb5)
- handle pages router notFound pages (#318) (27a5645)
- handle parallel routes default layout (#150) (ebe579f)
- handle redirect response body (#142) (f149e89)
- honor skipMiddlewareUrlNormalize (#287) (01e9450)
- import server in module scope (#363) (bce994d)
- include static files in the function bundle (#200) (7e79ba7)
- init blobStore in CacheHandler constructor and not global scope (#164) (1ab8d82)
- init deployStore on fs.readFile and not when lambda spawns (#277) (6b3edc3)
- LastModified Date (#211) (4e5d5fc)
- let next-server handle SWR behavior (#206) (d2eeda9)
- limit amount of concurrent handling of prerendered content (#356) (416f66c)
- make on-demand revalidation reliable (#245) (d85332a)
- match bare route for i18n site middleware (#288) (590db9b)
- middleware should run in/out of src dir (#219) (3fb5bda)
- normalise basepath (#228) (15116a0)
- normalise middleware data URL requests (#267) (fa41fce)
- normalise redirect/rewrite target locales (#226) (402caae)
- only populate build cache when run inside buildbot (#199) (a4c49e2)
- overriding headers in route handlers should work (#195) (636449d)
- pass correct domain to server (#144) (ae4285a)
- preserve functions in patched middleware manifest (#139) (d17c030)
- preserve locale in redirects (#276) (c4c4214)
- prevent infinite loop cause by global fetch patched by Next.js (#167) (616b94a)
- prewarm entrypoint (#351) (31484aa)
- put in real system logger (#177) (b874afc)
- reduce reliance on PACKAGE_PATH (#340) (4b53c21)
- remove accepts encoding workaround (#264) (d79d333)
- remove temp publish dir before moving static content (#278) (3d7b20f)
- resolve run-config.json in runtime from PLUGIN_DIR not cwd (#285) (0348fac)
- respect user defined included_files for functions from netlify.toml (#298) (e5192f2)
- rewrites shouldn't be following redirects (#253) (30b091c)
- set correct date header for cached objects (#124) (4523c5f)
- shim
require("node:buffer")
(#233) (00662dc) - shim process in edge runtime (#132) (7d01157)
- standardize stale-while-revalidate header (#95) (1220e04)
- strip internal middleware header from responses (#160) (e270811)
- strip locale from path passed to middleware (#194) (5e88d33)
- support basepath for static assets (#141) (84b3a63)
- support wasm chunks (#190) (739fbdd)
- try to resolve styled-jsx from next context, not serverHandlerContext (#300) (87f3215)
- unstable_cache not working (#237) (c076448)
- use response cache key for tag manifest first before falling back to pathname (#280) (51dcbe0)
- use unpatched fetch for all deploystores (#240) (8972e5b)
- windows doesnt like renaming into a directory that already exists (#299) (8a60324)
- check any revalidatedTags passed from next first before checking blobs, memoize tag manifest blob gets for duration of request (#229) (39ab537)
- ensure blob directory exist just once (#357) (037b695)
- reuse lastModified captured in cache handler to calculate date header (#260) (e33bd93)
- shim next's telemetry module to improve startup performance (#365) (3d2c429)
- release 5.0.0 (2599934)
5.0.0-alpha.25 (2023-11-27)
- cache tags & on-demand Revalidation for pages (#50) (a6f3ce2)
- symlink for speed and to avoid clobbering user files (#56) (2576f81)
- disable downloading canary swc binaries (#81) (8f3799c)
- fix patching the fs by doing a shallow clone of fs/promises module to avoid infinite loop (#73) (80b5ea9)
- fixes a module interop issue (#67) (57b8678)
- fixes an issue where the nft tracing was not picking up the runtime node_modules (#74) (fe68c74)
- fixes an issue where the static pages could not be retrieved from the blob store (#79) (e18de13)
- fixes the package structure (#66) (b10dad6)
- handle dependency paths for packaged module (a81658c)
- resolution issue (#72) (f56c28c)
- resolving the paths correctly when the next-runtime is used from source (#77) (fcd57d1)
- revert symlinks to cp due to CLI issues (#70) (85a50d4)
- temporary workaround for CDN compression bug (#80) (6b9fa33)
- Update included files within package.json (#63) (ec7c681)
- release 5.0.0-alpha.25 (7088065)
5.0.0-alpha.2 (2023-11-13)
5.0.0-alpha.1 (2023-11-13)
5.0.0-alpha.0 (2023-11-13)
- release 5.0.0-alpha.0 (aaf9085)
This is the first internal-only release of the new Next Runtime! It represents a big step forward in making the runtime more reliable and easier to maintain by leaning on the framework more, using new Netlify platform primitives and working with new Next.js public APIs such as custom cache handling and standalone mode.
The features in this release finally allow us to run Next.js App Router sites, with full support for the various rendering/routing/revalidating scenarios.
Note that we are currently working through some issues with Pages Router support, so please consider this an App Router only release, with Pages Router support still to come. Similarly, this release contains no edge runtime and hence middleware will run at the origin and not on the edge.
This is an alpha release, so please expect a variety of interesting edge-case bugs. It is not ready for production use, but we are excited to share it and begin gathering feedback.
- Standalone mode: The Next Runtime now builds Next.js sites in standalone mode, which means the Next Runtime no longer needs to trace and package server files/dependencies and we can instead rely on the framework. In addition, it exposes a server entrypoint that allows us to handle requests in a more reliable way, meaning we are less exposed to changes in Next.js internals.
- Cache handling: We are making use of a new Next.js configuration parameter that allows us to
specify a custom cache handler. This is a huge leap forward because it allows us to leverage
Netlify's new
Cache-Control
primitives and retire the use of ODBs, which are no longer suitable for dealing with the advanced caching requirements of modern Next.js sites. The new Next Runtime forwards Next.jsCache-Control
headers and specifically ensures thatstale-while-revalidate
is handled by our edge CDN and does not leak to the browser. In addition, the runtime sets appropriateVary
andCache-Tags
headers according to the Next.js response. - Blob storage To support globally persistent static revalidation, the Next Runtime makes use of Netlify's new blob storage primitive. Page content and metadata is cached in the blob store, meaning that the same content version is available to all lambda invocations and can be automatically (TTL) or manually (on-demand) revalidated across all CDN nodes.
- Functions API v2 The server handler utilizes the new Netlify Functions API, which means we are now receiving/returning a standard web Request/Response object and no longer need to bridge between a Lambda event and a Node event by standing up an HTTP server on each request. In addition, the new configuration API means we will no longer need to modify the Netlify TOML file and can avoid modifying any user code or Next.js build output for better DX.
4.3.2 (2022-04-04)
4.3.1 (2022-03-28)
4.3.0 (2022-03-23)
4.2.8 (2022-03-21)
- add new /trace to HIDDEN_PATHS (#1259) (84345a8)
- chdir to site root (#1265) (8463bbc)
- deps: update dependency @netlify/ipx to ^0.0.10 (#1237) (16e067d)
- use correct publishDir when building from CLI with cwd option (#1264) (e441c97)
4.2.7 (2022-02-18)
- correctly cache when using
next export
(#1223) (a8030ca) - deps: update dependency @netlify/functions to ^0.11.1 (#1217) (e17892b)
- deps: update dependency @netlify/functions to v1 (#1219) (af841cd)
4.2.6 (2022-02-14)
4.2.5 (2022-02-07)
4.2.4 (2022-02-03)
4.2.3 (2022-02-02)
4.2.2 (2022-01-31)
4.2.1 (2022-01-24)
- deps: update dependency @netlify/functions to ^0.11.0 (#1146) (4da630b)
- deps: update dependency core-js to v3.20.3 (#1155) (043ad36)
- provide hostname and port to server (#1149) (02053fd)
4.2.0 (2022-01-17)
4.1.3 (2022-01-13)
4.1.2 (2022-01-11)
- add specific rewrites for all SSR routes (#1105) (6fd7bcc)
- deps: update dependency core-js to v3.20.2 (#1095) (41966ca)
4.1.1 (2021-12-21)
- fix bug that caused ISR pages to sometimes serve first built version (#1051) (62660b2)
- force React to use production env (#1056) (eca0bee)
4.1.0 (2021-12-17)
4.0.0 (2021-12-14)
This is a full rewrite of the Essential Next.js plugin, with a new architecture that gives greater compatibility and stability.
- Full support for incremental static regeneration (ISR).
- Full support for Next.js rewrites, redirects and headers.
- Beta support for Next 12 Middleware
- Faster builds and deploys. Instead of generating one function per route, there are just three functions per site and a much smaller list of rewrites.
- Full support for Netlify's new persistent On-Demand Builders. Return
fallback: "blocking"
fromgetStaticPaths
and your rendering will be deferred until the first page load, then persisted globally. - A new image server for next/image, built on Nuxt's ipx. This is a high-performance, framework-agnostic image server based on sharp. This implementation uses On-Demand Builders to persist transformed images globally. Improved source image caching reduces time-to-first-byte for new transforms.
- Simplified configuration. You no longer need to set any Netlify-specific configuration options. For example, in a
monorepo all you need to do is set
publish
to point to your.next
directory and you can build the site in any way you like. - Removes requirement for the
target
to be set toserverless
, which is deprecated in Next 12. - Bundling now uses Next.js's own node-file-trace, giving more predictable results and smaller uploads.
The publish
directory should point to the site's .next
directory or distDir
if set, rather than out
as in
previous versions of the plugin.
Change the publish
directory to .next
:
[build]
publish = ".next"
If you previously set these values, they're no longer needed and can be removed:
target: "serverless"
in yournext.config.js
distDir
in yournext.config.js
node_bundler = "esbuild"
innetlify.toml
external_node_modules
innetlify.toml
If you currently use redirects or rewrites on your site, see the Rewrites and Redirects guide for information on changes to how they are handled in this version.
If you want to use Next 12's beta Middleware feature, this will mostly work as expected but please read the docs on some caveats and workarounds that are currently needed.
4.0.0-rc.1 (2021-12-07)
- bypass preview for static files (#918) (ecb3cc8)
- work around a bug that caused a full response to be sent for images, even if the etag matched
- deps: update dependency @netlify/ipx to ^0.0.8 (#902) (25f375f)
4.0.0-rc.0 (2021-12-06)
- copy public directory output instead of input when using Nx (#856) (d959f82)
- correct root redirect when trailingSlash = false (#879) (3c6b10b)
4.0.0-beta.13 (2021-12-02)
- correct handling of data route JSON files (#864) (adea889)
- move locale detection to netlify redirects (#861) (964637b)
4.0.0-beta.12 (2021-11-30)
4.0.0-beta.11 (2021-11-24)
4.0.0-beta.10 (2021-11-24)
- replace node-fetch with builtin (#834) (6ff3100)
- correct redirect priority and correctly handle ISR pages assets (#826) (6b61643)
- deps: update dependency @netlify/functions to ^0.10.0 (#830) (3256839)
- don't move files to the CDN if they match redirect/rewrite rules (#832) (9e3dd0e)
4.0.0-beta.9 (2021-11-19)
4.0.0-beta.8 (2021-11-19)
- don't move files to CDN if they match middleware (#812) (615c97a)
- move static pages by default (#816) (12ce69e)
4.0.0-beta.7 (2021-11-17)
- deps: update dependency @netlify/functions to ^0.9.0 (#807) (3deec1d)
- ensure path is encoded (#800) (b0f666e)
- use forced catchall for preview mode (#793) (fd7130f)
4.0.0-beta.6 (2021-11-08)
- handle static file glob on Windows (#778) (1cc222a)
- use glob to select files to move (#768) (faeb703)
4.0.0-beta.5 (2021-11-03)
- add missing middleware runtime file (#762) (83378b4)
- deps: update dependency node-fetch to v2.6.6 (#758) (759915b)
- don't force rewrite in preview mode (#761) (c88a504)
4.0.0-beta.4 (2021-10-27)
- correctly resolve zip path (#744) (68b5662)
- deps: update dependency @netlify/functions to ^0.8.0 (#747) (2c87e30)
- exclude electron by default (#746) (887b90a)
4.0.0-beta.3 (2021-10-26)
- support moving static pages out of function bundle (#728) (3da9c77)
- warn if zip is too large, and log the largest files (#730) (9989c0a)
- disable serverless targets (#739) (01fa113)
- ensure stale-while-revalidate headers are not sent (#737) (ef2da0d)
- typo in readme (#731) (bfc016f)
- use nft for ipx bundle (#725) (0321f68)
- use platform-agnostic paths, and add test to be sure (#736) (d448b11)
4.0.0-beta.2 (2021-10-19)
4.0.0-beta.1 (2021-10-15)
4.0.0-beta.0 (2021-10-15)
A complete rewrite of the Essential Next plugin. See the README for details and migration instructions