Skip to content

v12.0.0 - Webpack 5

Compare
Choose a tag to compare
@apaleslimghost apaleslimghost released this 20 Jan 16:23
· 308 commits to main since this release
b4016a6

This release updates Page Kit's Webpack plugins to Webpack 5. You'll need to update your app to Webpack 5 when updating to this version of Page Kit. Most apps (i.e. ones using Page Kit plugins without any additional custom Webpack configuration) will be able to just update the packages and everything will be fine. If you have any custom Webpack config, follow the Webpack 5 migration guide.

When updating to Webpack 5, you may need to be aware of its breaking changes. In testing, I've found one breaking change that affects apps:

  • when a package has an exports specifier in package.json Webpack 5 is strict about not importing things that aren't exported in exports. this may require code changes in packages and/or apps to export everything that should be and import things correctly.
    • for example, next-article imports @financial-times/custom-code-component/dist/custom-code-component.js, but that package doesn't include that entrypoint in its exports (it exports ., the top-level import, pointing that at the file dist/custom-code-component.js, which isn't visible outside the package). next-article won't build with Webpack 5 without changing that import to @financial-times/custom-code-component.

This release contains a number of other breaking changes:

  • We no longer use Autoprefixer. The CSS we write is supported in every browser we use, and browsers no longer use vendor prefixes for new features. The only holdouts are a handful of -webkit prefixed properties supported by every browser; i have verified via Github search that we never use any of these properties unprefixed.
  • Our Babel config now targets the latest Browserslist default config. This is Browserslist best practice, slightly lenient than our current browser support policy, results in much smaller Babel output than our previous Browserslist config (which was inadvertently targeting some very old browsers), and means we don't have to keep updating the config.
  • The prependData option in dotcom-build-sass, which was deprecated in favour of additionalData, has been removed.

What's Changed

⚠️ BREAKING CHANGES

New Contributors

Full Changelog: v11.3.0...v12.0.0