Releases: cloudflare/next-on-pages
@cloudflare/[email protected]
Minor Changes
- 291bfde: Support for the internal fetch (suspense) cache, and
next/cache
data revalidation.
Patch Changes
-
cb32baf: avoid the default is not a function unclear error
if there is some issue evaluating a lazy loaded edge function
its default export ends up not being a function and that results
in an unhelpful error like the following:TypeError: u.default is not a function
slightly improve the user experience by catching such error and
letting the user know that something went wrong with the edge
function's evaluation:Error: An error occurred while evaluating the target edge function (<edge-function-path>)
-
291bfde: Stop the
cache
property in fetch requests causing internal server error. -
4570aa6: add vercel@31 as a peer dependency
-
c788def: fix package version detection for yarn
-
fe6ea04: Add vercel@32 as a peer dependency
[email protected]
Patch Changes
-
5bfbbe1: Add workaround so that people can use standard not-found routes in their app directory applications
The problem is that:
- if there's a static not-found route in app dir, that generates a serverless (edge incompatible) function (_not-found)
- if there's a dynamic not-found route in app dir, that generates two serverless (edge incompatible) functions (_not-found, _error)
The workaround being introduced here is:
- if there's a static not-found route in app dir, we delete the generated _not-found serverless function
(which is not needed as we can just fallback to the static 404 html) - if there's a dynamic not-found route in app dir, we can't actually fix it but provide a warning for the user
Besides the above the
no-app-not-found-runtime
eslint rule has been introduced to try to help developers avoid
the issue
@cloudflare/[email protected]
Patch Changes
-
7da1fd8: fix package version detection not correctly working with yarn v1
-
5bfbbe1: Add workaround so that people can use standard not-found routes in their app directory applications
The problem is that:
- if there's a static not-found route in app dir, that generates a serverless (edge incompatible) function (_not-found)
- if there's a dynamic not-found route in app dir, that generates two serverless (edge incompatible) functions (_not-found, _error)
The workaround being introduced here is:
- if there's a static not-found route in app dir, we delete the generated _not-found serverless function
(which is not needed as we can just fallback to the static 404 html) - if there's a dynamic not-found route in app dir, we can't actually fix it but provide a warning for the user
Besides the above the
no-app-not-found-runtime
eslint rule has been introduced to try to help developers avoid
the issue -
7f94fd2: Apply search params to rewritten URLs in matching.
-
7da1fd8: install vercel yarn dev dependency only when not already present
[email protected]
@cloudflare/[email protected]
Minor Changes
- ea98a8f: Support for defining an
_routes.json
file in the root of the project. Entries in the root's file are copied over to the generated one in the output directory. - 9faf701: add warning indicating that usage under windows is not advised
- c6621c6: Support for using Bun as a package manager in projects.
Patch Changes
-
3affd17: Normalize injected import paths for builds done on Windows machines.
-
226d562: Specify the
framework
isnextjs
in the Vercelproject.json
file. -
5aefce5: watch mode only on file changes
only watch for file changes instead of watching for all possible changes (such as directories additions/removals, etc...),
making sure that we don't rerun the build process unnecessarily
[email protected]
@cloudflare/[email protected]
Minor Changes
-
660ed5e: Optimize build output function processing to increase next-on-pages' build speed by 2-4x.
-
11afe0a: Group code block identifiers by the function files that they are consumed in. This reduces the total number of unique files created for identifiers that are used in multiple functions, like Webpack chunks or manifests.
-
ee6b7dc: add user-agent header to outgoing fetch requests
mimic Next.js' behavior of setting (if not already present) a
user-agent
header set toNext.js Middleware
see: https://github.com/vercel/next.js/blob/6705c803021d3bdea7fec20e5d98f6899e49836d/packages/next/src/server/web/sandbox/context.ts#L318-L320this helps making next-on-pages more consistent with Next.js on Vercel
(it and can solve issues in which such header is necessary, as for example when making Github rest api calls,
see: #376 (comment))
Patch Changes
- 660ed5e: Prevent prerender files from overwriting in the output directory when the file hashes are the same.
- 660ed5e: Completely avoid processing rsc functions due to them being identical to non-rsc functions.
- f08f2b9: Fix
next.config.js
rewrites unintentionally redirecting the user instead of rewriting the request. - 6c28128: Fix middleware redirects not always bailing out of the routing stages.
- 9734795: clarify that Yarn Plug'n'Play can't be used simply because not supported by vercel
- 551fa05: Fix the
/_next/static
exclusion in_routes.json
being incorrect when the directory is not in the root.
[email protected]
@cloudflare/[email protected]
Patch Changes
-
619beea: bundle assets produced by the Vercel build and make them accessible via fetch
Vercel/Next can allow access binary assets bundled with their edge functions in the following manner:
const font = fetch(new URL('../../assets/asset-x', import.meta.url)).then( (res) => res.arrayBuffer(), );
As you can see in this
@vercel/og
example:
https://vercel.com/docs/concepts/functions/edge-functions/og-image-generation/og-image-examples#using-a-custom-fontThis sort of access to bindings is necessary for the
@vercel/og
package to work and might be used in other packages
as well, so it is something that we need to support.
We do so by making sure that we properly bind the assets found in the Vercel build output into our worker
and that fetches to such assets (using blob urls) are correctly handled (this requires us to patch the globalfetch
function) -
76a8bb4: Fix multiple search params with the same key not being preserved
[email protected]
Minor Changes
-
f1f5a95: remove eslint
missing-image-loader
rulethe
missing-image-loader
rule is no longer needed since@cloudflare/next-on-pages
version 1.3.0 as basic support for theImage
component has been introduced
(in the following PR: #357), therefore there isn't
a real need to warn developers not to use theImage
component without a custom loader
(since the component will just work by default).Warning
This is technically a breaking change to theeslint-plugin-next-on-pages
package
since linting would break for users specifically including themissing-image-loader
rule (causingDefinition for rule 'next-on-pages/missing-loader' was not found
errors)
however currently we don't assume that many people are using the plugin with the rule
specifically included, moreover the resolution for the breaking change is to simply
remove the rule from the application's eslint configuration so it is also extremely
simple to fix, thus we didn't consider this worth a major bump