|
| 1 | +--- |
| 2 | +date: "2022-03-15" |
| 3 | +version: "4.10.0" |
| 4 | +title: "v4.10 Release Notes" |
| 5 | +--- |
| 6 | + |
| 7 | +Welcome to `[email protected]` release (March 2022 #2) |
| 8 | + |
| 9 | +Key highlights of this release: |
| 10 | + |
| 11 | +- [Image CDN](#image-cdn) |
| 12 | + |
| 13 | +Also check out [notable bugfixes](#notable-bugfixes--improvements). |
| 14 | + |
| 15 | +**Bleeding Edge:** Want to try new features as soon as possible? Install `gatsby@next` and let us know |
| 16 | +if you have any [issues](https://github.com/gatsbyjs/gatsby/issues). |
| 17 | + |
| 18 | +[Previous release notes](/docs/reference/release-notes/v4.9) |
| 19 | + |
| 20 | +[Full changelog][full-changelog] |
| 21 | + |
| 22 | +--- |
| 23 | + |
| 24 | +## Image CDN |
| 25 | + |
| 26 | +Free your site from slow images forever. With the new Image CDN, we've added better support for remote files and images when building source plugins. The source plugins for WordPress & Contentful are already using the new `RemoteFile` GraphQL interface to enable the new `GatsbyImage` resolver (so you can try it out today). Other popular CMS and support for local files will follow. The new `GatsbyImage` resolver downloads images on demand and processes them during the build. This results in reduced build times and better user experience. You can even remove image processing as a whole during the build step! With Image CDN on Gatsby Cloud, we defer all image processing at the edge, getting even faster builds! |
| 27 | + |
| 28 | +If you have feedback, please post it to the [umbrella discussion](https://github.com/gatsbyjs/gatsby/discussions/35147). Thanks! |
| 29 | + |
| 30 | +If you're a source plugin author or written your custom source plugin, check out the [enabling Image CDN support guide](/docs/how-to/plugins-and-themes/creating-a-source-plugin/#enabling-image-cdn-support). You can also read the announcement blogpost [Image CDN: Lightning Fast Image Processing for Gatsby Cloud](/blog/image-cdn-lightning-fast-image-processing-for-gatsby-cloud/) to learn more. |
| 31 | + |
| 32 | +Here's how you can use it in your queries: |
| 33 | + |
| 34 | +```graphql |
| 35 | +query { |
| 36 | + speakerPage { |
| 37 | + socialImage { |
| 38 | + gatsbyImage(layout: FIXED, width: 440) |
| 39 | + } |
| 40 | + image { |
| 41 | + gatsbyImage(layout: CONSTRAINED, width: 280, height: 280) |
| 42 | + } |
| 43 | + } |
| 44 | +} |
| 45 | +``` |
| 46 | + |
| 47 | +So `gatsbyImage` replaces `gatsbyImageData` that you know from `gatsby-plugin-image` already. Feature parity for its arguments is not 100%, but the most common operations behave the same. Read [How to enable Image CDN](https://support.gatsbyjs.com/hc/en-us/articles/4426393233171) to start using Image CDN today. |
| 48 | + |
| 49 | +Once Image CDN is enabled, images will be served from a relative URL similar to this: |
| 50 | + |
| 51 | +``` |
| 52 | +/_gatsby/image/<base64-string>/<base64-string>/<original-file-name>.<file-extension> |
| 53 | +``` |
| 54 | + |
| 55 | +## Notable bugfixes & improvements |
| 56 | + |
| 57 | +- `gatsby` |
| 58 | + - Fix handling of encoded query params, via [PR #34816](https://github.com/gatsbyjs/gatsby/pull/34816) |
| 59 | + - Fix incorrect "inconsistent node counters" errors, via [PR #35025](https://github.com/gatsbyjs/gatsby/pull/35025) |
| 60 | + - Use `gatsby-config.ts` file when creating new Gatsby project with TypeScript, via [PR #35128](https://github.com/gatsbyjs/gatsby/pull/35128) |
| 61 | + - Don't write out page-data file if query rerun but result didn't change, via [PR #34925](https://github.com/gatsbyjs/gatsby/pull/34925) |
| 62 | +- `gatsby-plugin-sharp` |
| 63 | + - Fix `MaxListenersExceededWarning` messages, via [PR #35009](https://github.com/gatsbyjs/gatsby/pull/35009) |
| 64 | + - Fix generating multiple similar images with different `duotone` settings, via [PR #35075](https://github.com/gatsbyjs/gatsby/pull/35075) |
| 65 | + |
| 66 | +## Contributors |
| 67 | + |
| 68 | +A big **Thank You** to [our community who contributed][full-changelog] to this release 💜 |
| 69 | + |
| 70 | +- [njbmartin](https://github.com/njbmartin): chore(docs): typo in typescript documentation [PR #35040](https://github.com/gatsbyjs/gatsby/pull/35040) |
| 71 | +- [baranbbr](https://github.com/baranbbr): chore(docs): Conditionally sourcing files using environment variables [PR #35056](https://github.com/gatsbyjs/gatsby/pull/35056) |
| 72 | +- [hasthamalp](https://github.com/hasthamalp): chore(docs): Update query-execution.md [PR #35115](https://github.com/gatsbyjs/gatsby/pull/35115) |
| 73 | +- [tcoopman](https://github.com/tcoopman): fix(gatsby): null check for context [PR #35096](https://github.com/gatsbyjs/gatsby/pull/35096) |
| 74 | +- [Dusch4593](https://github.com/Dusch4593): chore(docs): Revising scope of `wrapPageElement()` and `wrapRootElement()` [PR #35057](https://github.com/gatsbyjs/gatsby/pull/35057) |
| 75 | +- [mckelveygreg](https://github.com/mckelveygreg): chore(gatsby): add generic to GatsbyFunctionRequest [PR #35029](https://github.com/gatsbyjs/gatsby/pull/35029) |
| 76 | +- [benackles](https://github.com/benackles): chore(docs): Fix broken link [PR #35071](https://github.com/gatsbyjs/gatsby/pull/35071) |
| 77 | +- [tianheg](https://github.com/tianheg): chore(docs): Fix link to TS doc in tutorial [PR #35014](https://github.com/gatsbyjs/gatsby/pull/35014) |
| 78 | +- [reviewher](https://github.com/reviewher): fix(gatsby-transformer-excel): Use `readFile` Buffer [PR #35050](https://github.com/gatsbyjs/gatsby/pull/35050) |
| 79 | +- [jonohewitt](https://github.com/jonohewitt): fix(gatsby-plugin-sharp): Upgrade `probe-image-size` to fix memory leak warning [PR #35009](https://github.com/gatsbyjs/gatsby/pull/35009) |
| 80 | +- [cheru-dev](https://github.com/cheru-dev): chore(docs): Fix typos [PR #35119](https://github.com/gatsbyjs/gatsby/pull/35119) |
| 81 | +- [josephjosedev](https://github.com/josephjosedev) |
| 82 | + - chore(docs): Update query-extraction link to relay [PR #35045](https://github.com/gatsbyjs/gatsby/pull/35045) |
| 83 | + - chore(docs): Update query-extraction.md to point to TS file instead of old JS [PR #35067](https://github.com/gatsbyjs/gatsby/pull/35067) |
| 84 | + - docs(gatsby): Update `query-watcher` to reference TS file [PR #35100](https://github.com/gatsbyjs/gatsby/pull/35100) |
| 85 | +- [keevan](https://github.com/keevan): docs(gh-pages): improve separate repository instructions [PR #35118](https://github.com/gatsbyjs/gatsby/pull/35118) |
| 86 | +- [adambaratz](https://github.com/adambaratz): fix(gatsby): Misspelled cacheIdentifier key [PR #35070](https://github.com/gatsbyjs/gatsby/pull/35070) |
| 87 | +- [natalyjazzviolin](https://github.com/natalyjazzviolin): chore(docs): Update migration guide to add more info about image resolvers [PR #35105](https://github.com/gatsbyjs/gatsby/pull/35105) |
| 88 | + |
| 89 | +[full-changelog]: https://github.com/gatsbyjs/gatsby/compare/[email protected]@4.10.0 |
0 commit comments