Minor Changes
-
#12052
5be12b2
Thanks @Fryuni! - Exposes extra APIs for scripting and testing.Config helpers
Two new helper functions exported from
astro/config
:mergeConfig()
allows users to merge partially defined Astro configurations on top of a base config while following the merge rules ofupdateConfig()
available for integrations.validateConfig()
allows users to validate that a given value is a valid Astro configuration and fills in default values as necessary.
These helpers are particularly useful for integration authors and for developers writing scripts that need to manipulate Astro configurations programmatically.
Programmatic build
The
build
API now receives a second optionalBuildOptions
argument where users can specify:devOutput
(defaultfalse
): output a development-based build similar to code transformed inastro dev
.teardownCompiler
(defaulttrue
): teardown the compiler WASM instance after build.
These options provide more control when running Astro builds programmatically, especially for testing scenarios or custom build pipelines.
-
#13278
4a43c4b
Thanks @ematipico! - Adds a new configuration optionserver.allowedHosts
and CLI option--allowed-hosts
.Now you can specify the hostnames that the dev and preview servers are allowed to respond to. This is useful for allowing additional subdomains, or running the dev server in a web container.
allowedHosts
checks the Host header on HTTP requests from browsers and if it doesn't match, it will reject the request to prevent CSRF and XSS attacks.astro dev --allowed-hosts=foo.bar.example.com,bar.example.com
astro preview --allowed-hosts=foo.bar.example.com,bar.example.com
// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ server: { allowedHosts: ['foo.bar.example.com', 'bar.example.com'], }, });
This feature is the same as Vite's
server.allowHosts
configuration. -
#13254
1e11f5e
Thanks @p0lyw0lf! - Adds the ability to process and optimize remote images in Markdown filesPreviously, Astro only allowed local images to be optimized when included using
![]()
syntax in plain Markdown files. Astro's image service could only display remote images without any processing.Now, Astro's image service can also optimize remote images written in standard Markdown syntax. This allows you to enjoy the benefits of Astro's image processing when your images are stored externally, for example in a CMS or digital asset manager.
No additional configuration is required to use this feature! Any existing remote images written in Markdown will now automatically be optimized. To opt-out of this processing, write your images in Markdown using the HTML
<img>
tag instead. Note that images located in yourpublic/
folder are still never processed.
Patch Changes
-
#13256
509fa67
Thanks @p0lyw0lf! - Adds experimental responsive image support in MarkdownPreviously, the
experimental.responsiveImages
feature could only provide responsive images when using the<Image />
and<Picture />
components.Now, images written with the
![]()
Markdown syntax in Markdown and MDX files will generate responsive images by default when using this experimental feature.To try this experimental feature, set
experimental.responsiveImages
to true in yourastro.config.mjs
file:{ experimental: { responsiveImages: true, }, }
Learn more about using this feature in the experimental responsive images feature reference.
For a complete overview, and to give feedback on this experimental API, see the Responsive Images RFC.
-
#13323
80926fa
Thanks @ematipico! - Updatesesbuild
andvite
to the latest to avoid false positives audits warnings caused byesbuild
. -
#13313
9e7c71d
Thanks @martrapp! - Fixes an issue where a form field named "attributes" shadows the form.attributes property. -
#12052
5be12b2
Thanks @Fryuni! - Fixes incorrect config update when callingupdateConfig
fromastro:build:setup
hook.The function previously called a custom update config function made for merging an Astro config. Now it calls the appropriate
mergeConfig()
utility exported by Vite that updates functional options correctly. -
#13303
5f72a58
Thanks @ematipico! - Fixes an issue where the dev server was applying second decoding of the URL of the incoming request, causing issues for certain URLs. -
Updated dependencies [
1e11f5e
,1e11f5e
]:- @astrojs/internal-helpers@0.6.0
- @astrojs/markdown-remark@6.2.0