We have released Gasket 6!
The core updates encompass a few main themes:
- Decoupling from Redux
- Support for Next.js 10
- Simplification of Intl implementation
- Improved Static Site Generation Support
- Webpack 5 Support
- Legacy Code Cleanup
Decoupling from Redux
To make Gasket less prescriptive, we have made efforts to decouple the dependency on Redux across our packages and plugins. This does not mean that we have removed support for Redux; only that we wish to allow space for other options.
Gasket 6 introduces a new package called @gasket/data. This package makes accessing server-side data and configurations from the client possible without Redux.
Check out our @gasket/data package docs!
Support for Next.js 10
We have also tuned up our packages and plugins to work with Next.js 10!
We have created a new @gasket/nextjs package, which will inject a GasketData script into the DOM. This script is consumed by the @gasket/data package to make server-side data available to the browser.
With this update, we have also removed built-in support for
Instead, we encourage using Next.js default page routing.
Simplify Intl Implementation
The @gasket/plugin-intl plugin has been updated to no longer require Redux as a dependency. It has been simplified to use the gasket data package instead.
Also, locale files are now served from the
public/locales/ folder by default.
However, you are able to configure this location in your
intl.localesDir option. This enables source locale files to be easily
deployed to a CDN along with other static content. If you wish to continue
serving the locale files from your app, this can be enabled using the
intl.serveStatic config options.
If your app is using locale files from NPM module dependencies, this is an
opt-in feature now, which can be enabled in the Gasket config using the
intl.modules config option.
To clarify the purpose of this Gasket Intl package and differentiate it from any future tie-in packages (Vue, Svelte, etc), it has been renamed to @gasket/react-intl.
The @gasket/react-intl package has also been updated with simplified locale paths, and the removal of server-rendered pages with preloaded locale files.
Refer to the @gasket/react-intl docs for more details.
Improved Static Site Generation Support
To improve static site generation support, we have updated a few of our
lifecycle signatures with a new
context object. The purpose for this is to
allow these lifecycle methods the option to be run at build time without a
request object, or at run time, when the request object is present.
Webpack 5 Support
Webpack 5 support is now available! We have tuned all our plugins and packages to support Webpack 5.
With this update, we have removed the generated Webpack config defaults, as the previously prescribed config options have changed. You can find more info about configuring Node.js options with Webpack 5 on the webpack website.
Legacy Code Cleanup
In an effort to keep the Gasket code base clear and concise, we have opted to remove fallback naming support. This will require all plugins and packages to be aligned to the project-type prefixed naming convention. This formatting allows user plugins to be referenced with short names and will help avoid collisions.
Gasket is no longer providing a browser ponyfill for the
fetch API. If you are
supporting older browsers that don’t have
fetch, please bring your own
You can find more info about various polyfills at polyfill.io.
Upgrading to Gasket 6
If you wish to upgrade an existing application to Gasket 6, we have created a comprehensive upgrade guide to walk you through the steps to upgrade!