-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Document Cloudflare binding build-time image optimization #13848
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
06e5f1a
65a0e1a
651a5eb
de5a5e8
357c637
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -116,7 +116,7 @@ It also accepts the following: | |
| ### `imageService` | ||
|
|
||
| <p> | ||
| **Type:** `'passthrough' | 'cloudflare' | 'cloudflare-binding' | 'compile' | 'custom' | { build: 'compile', runtime?: 'cloudflare-binding' | 'passthrough' }`<br /> | ||
| **Type:** `'passthrough' | 'cloudflare' | 'cloudflare-binding' | 'compile' | 'custom' | { build: 'compile', runtime?: 'cloudflare-binding' | 'passthrough' } | { build: 'cloudflare-binding', runtime?: 'cloudflare-binding' | 'passthrough' }`<br /> | ||
| **Default:** `'cloudflare-binding'` | ||
| </p> | ||
|
|
||
|
|
@@ -128,7 +128,11 @@ Determines which image service is used by the adapter. The adapter will default | |
| - **`compile`:** Uses the [configured image service](/en/reference/configuration-reference/#imageservice) or falls back to a combination of internal dependencies to transform images locally at build time for prerendered routes. The noop `passthrough` option is configured for on-demand rendered pages. | ||
| - **`custom`:** Uses the [configured image service](/en/reference/configuration-reference/#imageservice) (defaults to Sharp) to process assets at build time for prerendered routes. Bundles the image service for runtime image handling, without checking its compatibility with Cloudflare's `workerd` runtime. | ||
|
|
||
| It is also possible to configure your image service as an object, setting both a build time and runtime service independently. Currently, `'compile'` is the only available build-time option. The supported runtime options are `'passthrough'` (default) and `'cloudflare-binding'`: | ||
| <p><Since v="14.2.0" pkg="@astrojs/cloudflare" /></p> | ||
|
|
||
| You can also configure the image service as an object by providing a build-time service (`compile` or `cloudflare-binding`) and, optionally, a runtime service (`passthrough` or `cloudflare-binding`). | ||
|
|
||
| When the runtime service is omitted, its default value depends on the configured build-time service. It falls back to `'passthrough'` for `build: 'compile'` and to `'cloudflare-binding'` for `build: 'cloudflare-binding'`. | ||
|
|
||
| ```js title="astro.config.mjs" ins={6} | ||
| import { defineConfig } from 'astro/config'; | ||
|
|
@@ -141,6 +145,21 @@ export default defineConfig({ | |
| }); | ||
| ``` | ||
|
|
||
| Using `imageService: 'cloudflare-binding'` enables image optimization using the [Cloudflare Images binding](https://developers.cloudflare.com/images/transform-images/bindings/) only at runtime. | ||
|
|
||
| To opt in to build-time image optimization with the binding during `workerd` prerendering, set `build` to `'cloudflare-binding'`. If the binding fails to transform an image at build time, the adapter falls back to the [configured image service](/en/reference/configuration-reference/#imageservice) (defaults to Sharp). | ||
|
|
||
| ```js title="astro.config.mjs" ins={6} | ||
| import { defineConfig } from 'astro/config'; | ||
| import cloudflare from '@astrojs/cloudflare'; | ||
|
|
||
| export default defineConfig({ | ||
| adapter: cloudflare({ | ||
| imageService: { build: 'cloudflare-binding', runtime: 'cloudflare-binding' } | ||
|
alexanderniebuhr marked this conversation as resolved.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I noticed we still show
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think even if it is the default value, we should still be able to configure it. Maybe the code PR needs an update here. |
||
| }), | ||
| }); | ||
| ``` | ||
|
|
||
| ### `sessionKVBindingName` | ||
|
|
||
| <p> | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.