Skip to content

Commit

Permalink
feat: make Sharp the default image service (#7908)
Browse files Browse the repository at this point in the history
* feat: make Sharp the default image service

* chore: lockfile
  • Loading branch information
Princesseuh authored and ematipico committed Aug 8, 2023
1 parent f01eb58 commit c0de7a7
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 12 deletions.
18 changes: 18 additions & 0 deletions .changeset/four-houses-compete.md
Original file line number Diff line number Diff line change
@@ -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.
10 changes: 1 addition & 9 deletions packages/astro/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@
"mime": "^3.0.0",
"network-information-types": "^0.1.1",
"ora": "^6.3.1",
"sharp": "^0.32.1",
"p-limit": "^4.0.0",
"path-to-regexp": "^6.2.1",
"preferred-pm": "^3.0.3",
Expand Down Expand Up @@ -209,19 +210,10 @@
"remark-code-titles": "^0.1.2",
"rollup": "^3.25.1",
"sass": "^1.63.4",
"sharp": "^0.32.1",
"srcset-parse": "^1.1.0",
"undici": "^5.22.1",
"unified": "^10.1.2"
},
"peerDependencies": {
"sharp": ">=0.31.0"
},
"peerDependenciesMeta": {
"sharp": {
"optional": true
}
},
"engines": {
"node": ">=18.14.1",
"npm": ">=6.14.0"
Expand Down
4 changes: 2 additions & 2 deletions packages/astro/src/@types/astro.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ import type { AstroConfigSchema } from '../core/config';
import type { AstroTimer } from '../core/config/timer';
import type { AstroCookies } from '../core/cookies';
import type { LogOptions, LoggerLevel } from '../core/logger/core';
import { AstroIntegrationLogger } from '../core/logger/core';
import type { AstroComponentFactory, AstroComponentInstance } from '../runtime/server';
import type { SUPPORTED_MARKDOWN_FILE_EXTENSIONS } from './../core/constants.js';
import { AstroIntegrationLogger } from '../core/logger/core';
export type {
MarkdownHeading,
MarkdownMetadata,
Expand Down Expand Up @@ -987,7 +987,7 @@ export interface AstroUserConfig {
* @docs
* @name image.service (Experimental)
* @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
* @description
* Set which image service is used for Astro’s experimental assets support.
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/core/config/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ export const AstroConfigSchema = z.object({
}),
})
.default({
service: { entrypoint: 'astro/assets/services/squoosh', config: {} },
service: { entrypoint: 'astro/assets/services/sharp', config: {} },
}),
markdown: z
.object({
Expand Down

0 comments on commit c0de7a7

Please sign in to comment.