From eeab2d31b76ac54d965bc995853e23e822e41513 Mon Sep 17 00:00:00 2001 From: Guilhem Forey Date: Wed, 10 Jan 2024 14:02:52 +0000 Subject: [PATCH 1/4] chore: upgrade govuk frontend to v5.0 and improve public assets setup --- package-lock.json | 14 +++++++------- package.json | 6 +++--- scripts/install-accessible-autocomplete.sh | 10 ++++++++++ scripts/install-govuk-frontend.sh | 22 ++++++++++++++++++++++ src/backend/app.ts | 2 +- src/backend/views/layouts/main.njk | 13 +++++++------ src/backend/views/search.njk | 2 +- src/frontend/scss/main.scss | 22 +++++++++++----------- webpack.config.js | 4 ++-- 9 files changed, 64 insertions(+), 31 deletions(-) create mode 100644 scripts/install-accessible-autocomplete.sh create mode 100644 scripts/install-govuk-frontend.sh diff --git a/package-lock.json b/package-lock.json index 2adcc862..a42161c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "express-session": "^1.18.2", "google-libphonenumber": "^3.2.33", "got": "^12.5.0", - "govuk-frontend": "^4.7.0", + "govuk-frontend": "^5.0.0", "ioredis": "^5.3.2", "nunjucks": "^3.2.4", "passport": "^0.6.0", @@ -6372,9 +6372,9 @@ } }, "node_modules/govuk-frontend": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-4.7.0.tgz", - "integrity": "sha512-0OsdCusF5qvLWwKziU8zqxiC0nq6WP0ZQuw51ymZ/1V0tO71oIKMlSLN2S9bm8RcEGSoidPt2A34gKxePrLjvg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-5.0.0.tgz", + "integrity": "sha512-3WSfvQ+3kw/q/m8jrq/t8XnMUA8D2r0uhGyZaDbIh1gWTJBQzJBHbHiKYI9nc9ixIXdCFsc9RozkgEm57a795g==", "engines": { "node": ">= 4.2.0" } @@ -17062,9 +17062,9 @@ } }, "govuk-frontend": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-4.7.0.tgz", - "integrity": "sha512-0OsdCusF5qvLWwKziU8zqxiC0nq6WP0ZQuw51ymZ/1V0tO71oIKMlSLN2S9bm8RcEGSoidPt2A34gKxePrLjvg==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/govuk-frontend/-/govuk-frontend-5.0.0.tgz", + "integrity": "sha512-3WSfvQ+3kw/q/m8jrq/t8XnMUA8D2r0uhGyZaDbIh1gWTJBQzJBHbHiKYI9nc9ixIXdCFsc9RozkgEm57a795g==" }, "graceful-fs": { "version": "4.2.11", diff --git a/package.json b/package.json index 14fb3ac9..eaac53e4 100644 --- a/package.json +++ b/package.json @@ -8,11 +8,11 @@ "dev": "npm run copy-assets && nodemon src/backend/server.ts --ignore src/frontend", "local": "env $(cat .env-signon-mock|xargs) npm run start", "clean-build": "rm -rf dist public && npm run build", - "build": "npm run build-frontend && npm run copy-assets && npm run build-app", + "build": "npm run copy-assets && npm run build-frontend && npm run build-app", "postbuild": "mv dist/src/* dist/ && cp -r src/backend/views dist/backend/views", "build-app": "tsc", "build-frontend": "webpack", - "copy-assets": "cp -r ./node_modules/govuk-frontend/govuk/assets ./public/assets && cp ./node_modules/govuk-frontend/govuk/all.js ./public/assets/all.js && cp ./node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js ./public/assets/accessible-autocomplete.min.js && cp ./node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.css ./public/assets/aaccessible-autocomplete.min.css && cp ./node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js.map ./public/assets/accessible-autocomplete.min.js.map && cp ./node_modules/govuk-frontend/govuk/all.js.map ./public/assets/all.js.map", + "copy-assets": "sh scripts/install-govuk-frontend.sh && sh scripts/install-accessible-autocomplete.sh", "test": "jest --watchAll --coverage --verbose --detectOpenHandles", "test-ci": "jest --coverage --coverageReporters=json --verbose --detectOpenHandles --colors", "lint": "eslint './**/*.{ts,tsx}' --fix", @@ -51,7 +51,7 @@ "express-session": "^1.18.2", "google-libphonenumber": "^3.2.33", "got": "^12.5.0", - "govuk-frontend": "^4.7.0", + "govuk-frontend": "^5.0.0", "ioredis": "^5.3.2", "nunjucks": "^3.2.4", "passport": "^0.6.0", diff --git a/scripts/install-accessible-autocomplete.sh b/scripts/install-accessible-autocomplete.sh new file mode 100644 index 00000000..8f4b30ac --- /dev/null +++ b/scripts/install-accessible-autocomplete.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# CSS +mkdir -p public/stylesheets +cp ./node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.css ./public/stylesheets/accessible-autocomplete.min.css + +# JS +mkdir -p public/javascripts +cp ./node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js ./public/javascripts/accessible-autocomplete.min.js +cp ./node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js.map ./public/javascripts/accessible-autocomplete.min.js.map diff --git a/scripts/install-govuk-frontend.sh b/scripts/install-govuk-frontend.sh new file mode 100644 index 00000000..7b7e5e4a --- /dev/null +++ b/scripts/install-govuk-frontend.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# CSS +mkdir -p public/stylesheets +cp ./node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css public/stylesheets/govuk-frontend.min.css + +# Images +mkdir -p public/assets +cp -r ./node_modules/govuk-frontend/dist/govuk/assets/images public/assets/images + +# Fonts +mkdir -p public/assets +cp -r ./node_modules/govuk-frontend/dist/govuk/assets/fonts public/assets/ + +# Manifest +mkdir -p public/assets +cp ./node_modules/govuk-frontend/dist/govuk/assets/manifest.json public/assets + +# JS +mkdir -p ./public/javascripts +cp ./node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js ./public/javascripts/govuk-frontend.min.js +cp ./node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js.map ./public/javascripts/govuk-frontend.min.js.map diff --git a/src/backend/app.ts b/src/backend/app.ts index afdea322..b0484ced 100644 --- a/src/backend/app.ts +++ b/src/backend/app.ts @@ -98,7 +98,7 @@ class App { private initializeRenderEngine() { const views = [ - path.join(__dirname, '../../node_modules/govuk-frontend'), + path.join(__dirname, '../../node_modules/govuk-frontend/dist'), path.join(__dirname, './views'), ] diff --git a/src/backend/views/layouts/main.njk b/src/backend/views/layouts/main.njk index 26448a31..01bd77cc 100644 --- a/src/backend/views/layouts/main.njk +++ b/src/backend/views/layouts/main.njk @@ -27,8 +27,8 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= - - + +