static
static copied to clipboard
Use govuk-frontend v5
What
- Replace Uglifier with Terser, add patch which adds Sprockets support for Terser
- Update how JS modules are initialised in-line with changes in govuk-frontend and govuk_publishing_components
- Move components that rely on govuk-frontend modules to separate
es6-components.js
file - Remove deprecated scss variables
Why
govuk_publishing_components uses v5 of govuk-frontend. There are several breaking changes in this release and so we need to update the applications that use govuk_publishing_components. Please read what has changed in govuk_publishing_components and govuk-frontend. This specific changes this PR addresses are:
- Replace Uglifier with Terser, add patch which adds Sprockets support for Terser
- govuk-frontend v5 UMD component JS uses ES6 features which aren't supported by Uglifier, so we have to make the change to use Terser instead
- Sprockets doesn't support Terser by default, need to add in a patch which adds Terser to list of supported JS compressors
- Update initialisation method of application JS modules
- Initialisation is now called upon module creation, so init methods have been moved to the constructors to reflect this
- Move components that rely on govuk-frontend modules to seperate
es6-components.js
file- In the event that a browser below the target for
govuk-frontend
loads a page with JS on it, attempting to parse the JS fromgovuk-frontend
will cause an error. To avoid this from happening, JS that containsgovuk-frontend
JS has been moved to seperate file which will be loaded in a script tag withtype="module"
. This will prevent the JS from being parsed and so prevent the error
- In the event that a browser below the target for
- Remove deprecated scss variables
- In govuk-frontend v5 the new link styles are default and so
$govuk-new-link-styles
does not need to be set
- In govuk-frontend v5 the new link styles are default and so
⚠️ This repo is Continuously Deployed: make sure you follow the guidance ⚠️
Follow these steps if you are doing a Rails upgrade.