β¨ Major Changes
- #9184
a145ac07eThanks @bluwy! - Removes deprecatedanalyticsoption. Use thewebAnalyticsoption instead.
#8879 754e4fd31 Thanks @lilnasy! - The Vercel adapter now streams responses!
This brings better performance to your visitors by showing them content as it is rendered. The browser can also start loading the required stylesheets and scripts much sooner, which ultimately results in faster full page loads.
#8445 91380378c Thanks @Princesseuh! - Adds a configuration option devImageService to choose which of the built-in image services to use in development. Defaults to sharp.
#8546 b79e11f3c Thanks @matthewp! - Turn off functionPerRoute by default
In the previous version of @astrojs/vercel, the default for functionPerRoute was changed to true. While this option has several advantages, if youβre a free tier user you are likely to run into the limit of 12 functions per deployment. This will result in an error when you attempt to deploy.
For this reason, the functionPerRoute option is now back to defaulting to false. Itβs still a useful option if you have a paid plan and have previously run into issues with your single function exceeding the size limits.
#8021 2e8726fee Thanks @chriswdmr! - Enable Vercel Speed Insights and Vercel Web Analytics individually.
Deprecates the analytics property in astro.config.mjs in favor of speedInsights and webAnalytics.
If youβre using the analytics property, youβll need to update your config to use the new properties:
export default defineConfig({ adapter: vercel({ analytics: true, webAnalytics: { enabled: true }, speedInsights: { enabled: true } })});Allow configuration of Web Analytics with all available configuration options. Bumps @vercel/analytics package to the latest version.
#8452 7ea32c7fb Thanks @Princesseuh! - Fix Astroβs domains and remotePatterns not being used by Vercel when using Vercel Image Optimization
Updated dependencies [f66053a1e, 0fa483283]:
#8348 5f2c55bb5 Thanks @ematipico! - - Cache result during bundling, to speed up the process of multiple functions;
funcitonPerRoute enabled;#8354 0eb09dbab Thanks @Princesseuh! - Fix unnecessary warning about Sharp showing while building
Updated dependencies [d3a6f9f83, f21599671]:
#8188 d0679a666 Thanks @ematipico! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023.
#8179 6011d52d3 Thanks @matthewp! - Astro 3.0 Release Candidate
#8188 7511a4980 Thanks @ematipico! - When using an adapter that supports neither Squoosh or Sharp, Astro will now automatically use an image service that does not support processing, but still provides the other benefits of astro:assets such as enforcing alt, no CLS etc to users
#8015 9cc4e48e6 Thanks @matthewp! - Remove the Vercel Edge adapter
@astrojs/vercel/serverless now supports Edge middleware, so a separate adapter for Edge itself (deploying your entire app to the edge) is no longer necessary. Please update your Astro config to reflect this change:
import { defineConfig } from 'astro/config'; import vercel from '@astrojs/vercel/edge'; import vercel from '@astrojs/vercel/serverless';
export default defineConfig({ output: 'server', adapter: vercel({ edgeMiddleware: true }),});This adapter had several known limitations and compatibility issues that prevented many people from using it in production. To reduce maintenance costs and because we have a better story with Serveless + Edge Middleware, we are removing the Edge adapter.
#8239 52f0837bd Thanks @matthewp! - Vercel adapter now defaults to functionPerRoute.
With this change, @astrojs/vercel/serverless now splits each route into its own function. By doing this, the size of each function is reduced and startup time is faster.
You can disable this option, which will cause the code to be bundled into a single function, by setting functionPerRoute to false.
#8188 148e61d24 Thanks @ematipico! - Reduced the amount of polyfills provided by Astro. Astro will no longer provide (no-op) polyfills for several web apis such as HTMLElement, Image or Document. If you need access to those APIs on the server, we recommend using more proper polyfills available on npm.
#8188 cd2d7e769 Thanks @ematipico! - Introduced the concept of feature map. A feature map is a list of features that are built-in in Astro, and an Adapter
can tell Astro if it can support it.
import { AstroIntegration } from './astro';
function myIntegration(): AstroIntegration { return { name: 'astro-awesome-list', // new feature map supportedAstroFeatures: { hybridOutput: 'experimental', staticOutput: 'stable', serverOutput: 'stable', assets: { supportKind: 'stable', isSharpCompatible: false, isSquooshCompatible: false, }, }, };}#8188 80f1494cd Thanks @ematipico! - The build.split and build.excludeMiddleware configuration options are deprecated and have been replaced by options in the adapter config.
If your config includes the build.excludeMiddleware option, replace it with edgeMiddleware in your adapter options:
import { defineConfig } from "astro/config";import vercel from "@astrojs/vercel/serverless";
export default defineConfig({ build: { excludeMiddleware: true }, adapter: vercel({ edgeMiddleware: true }),});If your config includes the build.split option, replace it with functionPerRoute in your adapter options:
import { defineConfig } from "astro/config";import vercel from "@astrojs/vercel/serverless";
export default defineConfig({ build: { split: true }, adapter: vercel({ functionPerRoute: true }),});d0679a666, db39206cb, 2aa6d8ace, adf9fccfd, 0c7b42dc6, 46c4c0e05, 364d861bd, 2484dc408, 81545197a, 6011d52d3, c2c71d90c, cd2d7e769, 80f1494cd, e45f30293, c0de7a7b0, 65c354969, 3c3100851, 34cb20021, a824863ab, 44f7a2872, 1048aca55, be6bbd2c8, 9e021a91c, 7511a4980, c37632a20, acf652fc1, 42785c7b7, 8450379db, dbc97b121, 7d2f311d4, 2540feedb, ea7ff5177, 68efd4a8b, 7bd1b86f8, 036388f66, 519a1c4e8, 1f58a7a1b, 2ae9d37f0, a8f35777e, 70f34f5a3, 5208a3c8f, 84af8ed9d, f003e7364, ffc9e2d3d, 732111cdc, 0f637c71e, 33b8910cf, 8a5b0c1f3, 148e61d24, e79e3779d, 632579dc2, 3674584e0, 1db4e92c1, e7f872e91, 16f09dfff, 4477bb41c, 55c10d1d5, 3e834293d, 96beb883a, 997a0db8a, 80f1494cd, 0f0625504, e1ae56e72, f32d093a2, f01eb585e, b76c166bd, a87cbe400, 866ed4098, 767eb6866, 32669cd47]:
#8239 52f0837bd Thanks @matthewp! - Vercel adapter now defaults to functionPerRoute.
With this change, @astrojs/vercel/serverless now splits each route into its own function. By doing this, the size of each function is reduced and startup time is faster.
You can disable this option, which will cause the code to be bundled into a single function, by setting functionPerRoute to false.
2aa6d8ace]:
#8015 9cc4e48e6 Thanks @matthewp! - Remove the Vercel Edge adapter
@astrojs/vercel/serverless now supports Edge middleware, so a separate adapter for Edge itself (deploying your entire app to the edge) is no longer necessary. Please update your Astro config to reflect this change:
import { defineConfig } from 'astro/config'; import vercel from '@astrojs/vercel/edge'; import vercel from '@astrojs/vercel/serverless';
export default defineConfig({ output: 'server', adapter: vercel({ edgeMiddleware: true }),});This adapter had several known limitations and compatibility issues that prevented many people from using it in production. To reduce maintenance costs and because we have a better story with Serveless + Edge Middleware, we are removing the Edge adapter.
1eae2e3f7 Thanks @Princesseuh! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023.
c022a4217 Thanks @Princesseuh! - When using an adapter that supports neither Squoosh or Sharp, Astro will now automatically use an image service that does not support processing, but still provides the other benefits of astro:assets such as enforcing alt, no CLS etc to users
3dc1ca2fa Thanks @Princesseuh! - Reduced the amount of polyfills provided by Astro. Astro will no longer provide (no-op) polyfills for several web apis such as HTMLElement, Image or Document. If you need access to those APIs on the server, we recommend using more proper polyfills available on npm.
9b4f70a62 Thanks @ematipico! - Introduced the concept of feature map. A feature map is a list of features that are built-in in Astro, and an Adapter
can tell Astro if it can support it.
import { AstroIntegration } from './astro';
function myIntegration(): AstroIntegration { return { name: 'astro-awesome-list', // new feature map supportedAstroFeatures: { hybridOutput: 'experimental', staticOutput: 'stable', serverOutput: 'stable', assets: { supportKind: 'stable', isSharpCompatible: false, isSquooshCompatible: false, }, }, };}3fdf509b2 Thanks @ematipico! - The build.split and build.excludeMiddleware configuration options are deprecated and have been replaced by options in the adapter config.
If your config includes the build.excludeMiddleware option, replace it with edgeMiddleware in your adapter options:
import { defineConfig } from "astro/config";import vercel from "@astrojs/vercel/serverless";
export default defineConfig({ build: { excludeMiddleware: true }, adapter: vercel({ edgeMiddleware: true }),});If your config includes the build.split option, replace it with functionPerRoute in your adapter options:
import { defineConfig } from "astro/config";import vercel from "@astrojs/vercel/serverless";
export default defineConfig({ build: { split: true }, adapter: vercel({ functionPerRoute: true }),});