Skip to content
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

@roots/bud-imagemin: move away from GoogleChromeLabs/squoosh #2011

Closed
3 tasks done
kellymears opened this issue Jan 16, 2023 · 1 comment
Closed
3 tasks done

@roots/bud-imagemin: move away from GoogleChromeLabs/squoosh #2011

kellymears opened this issue Jan 16, 2023 · 1 comment

Comments

@kellymears
Copy link
Member

Agreement

The feature

googlechromelabs/squoosh is no longer actively maintained: GoogleChromeLabs/squoosh#1242 (comment).

We need to transition to a different handler because Squoosh is incompatible with Node v18.

I think sharp seems like the best fit.

Use case

No response

Notes

No response

kodiakhq bot pushed a commit that referenced this issue Jan 17, 2023
squoosh is no longer maintained.

replaces with `sharp` and `svgo`. breaks into three extensions:

- `@roots/bud-imagemin`: responsible for registering the other two. provides facade-like access for common config operations.
- `@roots/bud-imagemin/sharp`: handles managing sharp generators and minimizers
- `@roots/bud-imagemin/svgo`: handles managing svg minimizer

## facades

configure a particular encoder (this basically just calls the appropriate handler for a filetype.. but the signature is identical to the `setEncoderOptions` methods it calls):

```ts
bud.imagemin.encode(`jpeg`, {quality: 90})
```

easily enable lossless quality:

```ts
bud.imagemin.lossless()
```

add a generator:

```ts
bud.imagemin.addPreset(`jpeg`, {
  options: {
    encodeOptions: {
      jpeg: {
        quality: 75
      },
    },
  },
})
```

## New extensions

the child extensions are slightly lower-level.

### bud.imagemin.sharp

- `bud.imagemin.sharp.setEncodeOptions`
- `bud.imagemin.sharp.setGenerator`

### bud.imagemin.svgo

- `bud.imagemin.svgo.setEncodeOptions`
- No generator functionality is provided for svg. It doesn't really make sense.

refers:

- issue #2011
- blocking #1962

## Type of change

**PATCH: backwards compatible change**



This PR includes breaking changes to the following core packages:

- none

This PR includes breaking changes to the follow extensions:

- none

## Dependencies

### Adds

- none

### Removes

- none
kodiakhq bot pushed a commit that referenced this issue Jan 18, 2023
- bump node to v18 lts

blocked by: 

- GoogleChromeLabs/squoosh#1242

refers:

- #2011 

## Type of change

**PATCH: backwards compatible change**



This PR includes breaking changes to the following core packages:

- none

This PR includes breaking changes to the follow extensions:

- none

## Dependencies

### Adds

- none

### Removes

- none
@kellymears
Copy link
Member Author

Released in v6.7.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant