Releases: withastro/astro
[email protected]
[email protected]
[email protected]
Major Changes
-
#11798
e9e2139
Thanks @matthewp! - Unflag globalRoutePriorityThe previously experimental feature
globalRoutePriority
is now the default in Astro 5.This was a refactoring of route prioritization in Astro, making it so that injected routes, file-based routes, and redirects are all prioritized using the same logic. This feature has been enabled for all Starlight projects since it was added and should not affect most users.
-
#11864
ee38b3a
Thanks @ematipico! - ### [changed]:entryPoint
type inside the hookastro:build:ssr
In Astro v4.x, theentryPoint
type wasRouteData
.Astro v5.0 the
entryPoint
type isIntegrationRouteData
, which contains a subset of theRouteData
type. The fieldsisIndex
andfallbackRoutes
were removed.What should I do?
Update your adapter to change the type of
entryPoint
fromRouteData
toIntegrationRouteData
.-import type {RouteData} from 'astro'; +import type {IntegrationRouteData} from "astro" -function useRoute(route: RouteData) { +function useRoute(route: IntegrationRouteData) { }
-
#12524
9f44019
Thanks @bluwy! - Bumps Vite to ^6.0.1 and handles its breaking changes -
#10742
b6fbdaa
Thanks @ematipico! - The lowest version of Node supported by Astro is now Node v18.17.1 and higher. -
#11916
46ea29f
Thanks @bluwy! - Updates how thebuild.client
andbuild.server
option values get resolved to match existing documentation. With this fix, the option values will now correctly resolve relative to theoutDir
option. So ifoutDir
is set to./dist/nested/
, then by default:build.client
will resolve to<root>/dist/nested/client/
build.server
will resolve to<root>/dist/nested/server/
Previously the values were incorrectly resolved:
build.client
was resolved to<root>/dist/nested/dist/client/
build.server
was resolved to<root>/dist/nested/dist/server/
If you were relying on the previous build paths, make sure that your project code is updated to the new build paths.
-
#11982
d84e444
Thanks @Princesseuh! - Adds a default exclude and include value to the tsconfig presets.{projectDir}/dist
is now excluded by default, and{projectDir}/.astro/types.d.ts
and{projectDir}/**/*
are included by default.Both of these options can be overridden by setting your own values to the corresponding settings in your
tsconfig.json
file. -
#11861
3ab3b4e
Thanks @bluwy! - Cleans up Astro-specfic metadata attached tovfile.data
in Remark and Rehype plugins. Previously, the metadata was attached in different locations with inconsistent names. The metadata is now renamed as below:vfile.data.__astroHeadings
->vfile.data.astro.headings
vfile.data.imagePaths
->vfile.data.astro.imagePaths
The types of
imagePaths
has also been updated fromSet<string>
tostring[]
. Thevfile.data.astro.frontmatter
metadata is left unchanged.While we don't consider these APIs public, they can be accessed by Remark and Rehype plugins that want to re-use Astro's metadata. If you are using these APIs, make sure to access them in the new locations.
-
#11987
bf90a53
Thanks @florian-lefebvre! - Thelocals
object can no longer be overriddenMiddleware, API endpoints, and pages can no longer override the
locals
object in its entirety. You can still append values onto the object, but you can not replace the entire object and delete its existing values.If you were previously overwriting like so:
ctx.locals = { one: 1, two: 2, };
This can be changed to an assignment on the existing object instead:
Object.assign(ctx.locals, { one: 1, two: 2, });
-
#11908
518433e
Thanks @Princesseuh! - Theimage.endpoint
config now allow customizing the route of the image endpoint in addition to the entrypoint. This can be useful in niche situations where the default route/_image
conflicts with an existing route or your local server setup.import { defineConfig } from 'astro/config'; defineConfig({ image: { endpoint: { route: '/image', entrypoint: './src/image_endpoint.ts', }, }, });
-
#12008
5608338
Thanks @Princesseuh! - Welcome to the Astro 5 beta! This release has no changes from the latest alpha of this package, but it does bring us one step closer to the final, stable release.Starting from this release, no breaking changes will be introduced unless absolutely necessary.
To learn how to upgrade, check out the Astro v5.0 upgrade guide in our beta docs site.
-
#11679
ea71b90
Thanks @florian-lefebvre! - Theastro:env
feature introduced behind a flag in v4.10.0 is no longer experimental and is available for general use. If you have been waiting for stabilization before usingastro:env
, you can now do so.This feature lets you configure a type-safe schema for your environment variables, and indicate whether they should be available on the server or the client.
To configure a schema, add the
env
option to your Astro config and define your client and server variables. If you were previously using this feature, please remove the experimental flag from your Astro config and move your entireenv
configuration unchanged to a top-level option.import { defineConfig, envField } from 'astro/config'; export default defineConfig({ env: { schema: { API_URL: envField.string({ context: 'client', access: 'public', optional: true }), PORT: envField.number({ context: 'server', access: 'public', default: 4321 }), API_SECRET: envField.string({ context: 'server', access: 'secret' }), }, }, });
You can import and use your defined variables from the appropriate
/client
or/server
module:--- import { API_URL } from 'astro:env/client'; import { API_SECRET_TOKEN } from 'astro:env/server'; const data = await fetch(`${API_URL}/users`, { method: 'GET', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${API_SECRET_TOKEN}`, }, }); --- <script> import { API_URL } from 'astro:env/client'; fetch(`${API_URL}/ping`); </script>
Please see our guide to using environment variables for more about this feature.
-
#11806
f7f2338
Thanks @Princesseuh! - Removes theassets
property onsupportedAstroFeatures
for adapters, as it did not reflect reality properly in many cases.Now, relating to assets, only a single
sharpImageService
property is available, determining if the adapter is compatible with the built-in sharp image service. -
#11864
ee38b3a
Thanks @ematipico! - ### [changed]:routes
type inside the hookastro:build:done
In Astro v4.x, theroutes
type wasRouteData
.Astro v5.0 the
routes
type isIntegrationRouteData
, which contains a subset of theRouteData
type. The fieldsisIndex
andfallbackRoutes
were removed.What should I do?
Update your adapter to change the type of
routes
fromRouteData
toIntegrationRouteData
.-import type {RouteData} from 'astro'; +import type {IntegrationRouteData} from "astro" -function useRoute(route: RouteData) { +function useRoute(route: IntegrationRouteData) { }
-
...
@astrojs/[email protected]
Patch Changes
- #12594
4f2fd0a
Thanks @Princesseuh! - Fixes compatibility with Astro 5
@astrojs/[email protected]
Patch Changes
- #12594
4f2fd0a
Thanks @Princesseuh! - Fixes compatibility with Astro 5
@astrojs/[email protected]
Major Changes
-
#12060
cb5d3ae
Thanks @Princesseuh! - Updates peer dependency range to support Astro 5 -
#12524
9f44019
Thanks @bluwy! - Updates Vite dependency to v6 to match Astro v5
Minor Changes
Patch Changes
- #12551
81b0bf5
Thanks @ematipico! - New release to include changes from 4.5.2
@astrojs/[email protected]
@astrojs/[email protected]
Minor Changes
-
#12008
5608338
Thanks @Princesseuh! - Welcome to the Astro 5 beta! This release has no changes from the latest alpha of this package, but it does bring us one step closer to the final, stable release.Starting from this release, no breaking changes will be introduced unless absolutely necessary.
To learn how to upgrade, check out the Astro v5.0 upgrade guide in our beta docs site.
-
#11989
3e70853
Thanks @florian-lefebvre! - Updates the type fromRouteData
toIntegrationRouteData
@astrojs/[email protected]
@astrojs/[email protected]
Patch Changes
- #12594
4f2fd0a
Thanks @Princesseuh! - Fixes compatibility with Astro 5