feat: make Sharp the default image service (#7908)

* feat: make Sharp the default image service

* chore: lockfile
This commit is contained in:
Erika 2023-08-01 22:14:57 +02:00 committed by Emanuele Stoppa
parent f01eb585e7
commit c0de7a7b0f
4 changed files with 22 additions and 12 deletions

View file

@ -0,0 +1,18 @@
---
'astro': major
---
Sharp is now the default image service used for `astro:assets`. If you would prefer to still use Squoosh, you can update your config with the following:
```ts
import { defineConfig, squooshImageService } from "astro/config";
// https://astro.build/config
export default defineConfig({
image: {
service: squooshImageService(),
}
})
```
However, not only do we recommend using Sharp as it is faster and more reliable, it is also highly likely that the Squoosh service will be removed in a future release.

View file

@ -153,6 +153,7 @@
"mime": "^3.0.0", "mime": "^3.0.0",
"network-information-types": "^0.1.1", "network-information-types": "^0.1.1",
"ora": "^6.3.1", "ora": "^6.3.1",
"sharp": "^0.32.1",
"p-limit": "^4.0.0", "p-limit": "^4.0.0",
"path-to-regexp": "^6.2.1", "path-to-regexp": "^6.2.1",
"preferred-pm": "^3.0.3", "preferred-pm": "^3.0.3",
@ -209,19 +210,10 @@
"remark-code-titles": "^0.1.2", "remark-code-titles": "^0.1.2",
"rollup": "^3.25.1", "rollup": "^3.25.1",
"sass": "^1.63.4", "sass": "^1.63.4",
"sharp": "^0.32.1",
"srcset-parse": "^1.1.0", "srcset-parse": "^1.1.0",
"undici": "^5.22.1", "undici": "^5.22.1",
"unified": "^10.1.2" "unified": "^10.1.2"
}, },
"peerDependencies": {
"sharp": ">=0.31.0"
},
"peerDependenciesMeta": {
"sharp": {
"optional": true
}
},
"engines": { "engines": {
"node": ">=18.14.1", "node": ">=18.14.1",
"npm": ">=6.14.0" "npm": ">=6.14.0"

View file

@ -20,9 +20,9 @@ import type { AstroConfigSchema } from '../core/config';
import type { AstroTimer } from '../core/config/timer'; import type { AstroTimer } from '../core/config/timer';
import type { AstroCookies } from '../core/cookies'; import type { AstroCookies } from '../core/cookies';
import type { LogOptions, LoggerLevel } from '../core/logger/core'; import type { LogOptions, LoggerLevel } from '../core/logger/core';
import { AstroIntegrationLogger } from '../core/logger/core';
import type { AstroComponentFactory, AstroComponentInstance } from '../runtime/server'; import type { AstroComponentFactory, AstroComponentInstance } from '../runtime/server';
import type { SUPPORTED_MARKDOWN_FILE_EXTENSIONS } from './../core/constants.js'; import type { SUPPORTED_MARKDOWN_FILE_EXTENSIONS } from './../core/constants.js';
import { AstroIntegrationLogger } from '../core/logger/core';
export type { export type {
MarkdownHeading, MarkdownHeading,
MarkdownMetadata, MarkdownMetadata,
@ -987,7 +987,7 @@ export interface AstroUserConfig {
* @docs * @docs
* @name image.service (Experimental) * @name image.service (Experimental)
* @type {{entrypoint: 'astro/assets/services/sharp' | 'astro/assets/services/squoosh' | string, config: Record<string, any>}} * @type {{entrypoint: 'astro/assets/services/sharp' | 'astro/assets/services/squoosh' | string, config: Record<string, any>}}
* @default `{entrypoint: 'astro/assets/services/squoosh', config?: {}}` * @default `{entrypoint: 'astro/assets/services/sharp', config?: {}}`
* @version 2.1.0 * @version 2.1.0
* @description * @description
* Set which image service is used for Astros experimental assets support. * Set which image service is used for Astros experimental assets support.

View file

@ -191,7 +191,7 @@ export const AstroConfigSchema = z.object({
}), }),
}) })
.default({ .default({
service: { entrypoint: 'astro/assets/services/squoosh', config: {} }, service: { entrypoint: 'astro/assets/services/sharp', config: {} },
}), }),
markdown: z markdown: z
.object({ .object({