diff --git a/app/package.json b/app/package.json index ae5c2b5a21..ea26b1fc45 100644 --- a/app/package.json +++ b/app/package.json @@ -24,6 +24,7 @@ "govuk_frontend_toolkit": "^9.0.1", "govuk_template_jinja": "^0.26.0", "govuk-elements-sass": "3.1.3", + "govuk-frontend": "*", "gulp": "^4.0.2", "gulp-cli": "^2.3.0", "highlight.js": "^11.7.0", diff --git a/app/src/javascripts/main.mjs b/app/src/javascripts/main.mjs new file mode 100644 index 0000000000..ec6f1eb6db --- /dev/null +++ b/app/src/javascripts/main.mjs @@ -0,0 +1,3 @@ +import { initAll } from 'govuk-frontend' + +initAll() diff --git a/app/src/stylesheets/app-ie8.scss b/app/src/stylesheets/app-ie8.scss index b58b049a27..c165db8865 100644 --- a/app/src/stylesheets/app-ie8.scss +++ b/app/src/stylesheets/app-ie8.scss @@ -1,3 +1,3 @@ -@import "../../../package/src/govuk/all-ie8"; +@import "govuk-frontend/src/govuk/all-ie8"; @import "partials/app"; @import "partials/banner"; diff --git a/app/src/stylesheets/app.scss b/app/src/stylesheets/app.scss index 1203c6b050..4e0361cfd2 100644 --- a/app/src/stylesheets/app.scss +++ b/app/src/stylesheets/app.scss @@ -1,7 +1,7 @@ $govuk-show-breakpoints: true; $govuk-new-link-styles: true; -@import "../../../package/src/govuk/all"; +@import "govuk-frontend/src/govuk/all"; @import "partials/app"; @import "partials/code"; @import "partials/banner"; diff --git a/app/src/stylesheets/full-page-examples/campaign-page.scss b/app/src/stylesheets/full-page-examples/campaign-page.scss index 79c69cdaf1..fd24e7a34e 100644 --- a/app/src/stylesheets/full-page-examples/campaign-page.scss +++ b/app/src/stylesheets/full-page-examples/campaign-page.scss @@ -1,6 +1,6 @@ -@import "../../../../package/src/govuk/base"; +@import "govuk-frontend/src/govuk/base"; $govuk-new-link-styles: true; -@import "../../../../package/src/govuk/core/all"; +@import "govuk-frontend/src/govuk/core/all"; .app-header--campaign { padding-bottom: govuk-spacing(2); diff --git a/app/src/stylesheets/full-page-examples/search.scss b/app/src/stylesheets/full-page-examples/search.scss index 8758f018b2..a34aae94ac 100644 --- a/app/src/stylesheets/full-page-examples/search.scss +++ b/app/src/stylesheets/full-page-examples/search.scss @@ -1,6 +1,6 @@ -@import "../../../../package/src/govuk/base"; +@import "govuk-frontend/src/govuk/base"; $govuk-new-link-styles: true; -@import "../../../../package/src/govuk/core/all"; +@import "govuk-frontend/src/govuk/core/all"; .app-document-list > li { padding-top: govuk-spacing(4); diff --git a/app/src/views/layouts/_generic.njk b/app/src/views/layouts/_generic.njk index 8966d9b324..168f279321 100644 --- a/app/src/views/layouts/_generic.njk +++ b/app/src/views/layouts/_generic.njk @@ -42,6 +42,5 @@ {% include "partials/legacyJavaScript.njk" %} {% endif %} - - + {% endblock %} diff --git a/app/src/views/layouts/legacy.njk b/app/src/views/layouts/legacy.njk index d458a8ba97..5c571ec75e 100644 --- a/app/src/views/layouts/legacy.njk +++ b/app/src/views/layouts/legacy.njk @@ -22,6 +22,5 @@ {% block body_end %} {% include "partials/legacyJavaScript.njk" %} - - + {% endblock %} diff --git a/app/tasks/scripts.mjs b/app/tasks/scripts.mjs index 2b53adef4e..b533e9b208 100644 --- a/app/tasks/scripts.mjs +++ b/app/tasks/scripts.mjs @@ -11,8 +11,8 @@ import { npm, scripts, task } from '../../tasks/index.mjs' */ export const compile = gulp.series( task.name('compile:js', () => - scripts.compile('all.mjs', { - srcPath: join(paths.src, 'govuk'), + scripts.compile('main.mjs', { + srcPath: join(paths.app, 'src/javascripts'), destPath: join(paths.app, 'dist/javascripts'), filePath (file) { diff --git a/package-lock.json b/package-lock.json index ac80ae16af..1e86f69acb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,6 +48,7 @@ "postcss-unrgba": "^1.1.1", "puppeteer": "^19.8.2", "rollup": "0.59.4", + "rollup-plugin-node-resolve": "^4.2.4", "rollup-plugin-replace": "^2.2.0", "sass-embedded": "^1.60.0", "sassdoc": "^2.7.4", @@ -105,6 +106,7 @@ "govuk_frontend_toolkit": "^9.0.1", "govuk_template_jinja": "^0.26.0", "govuk-elements-sass": "3.1.3", + "govuk-frontend": "*", "gulp": "^4.0.2", "gulp-cli": "^2.3.0", "highlight.js": "^11.7.0", @@ -4355,6 +4357,14 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, + "node_modules/@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/responselike": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", @@ -6388,6 +6398,17 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/builtins": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", @@ -13029,6 +13050,11 @@ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, "node_modules/is-negated-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", @@ -20992,6 +21018,18 @@ "rollup": "bin/rollup" } }, + "node_modules/rollup-plugin-node-resolve": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-4.2.4.tgz", + "integrity": "sha512-t/64I6l7fZ9BxqD3XlX4ZeO6+5RLKyfpwE2CiPNUKa+GocPlQhf/C208ou8y3AwtNsc6bjSk/8/6y/YAyxCIvw==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-node-resolve.", + "dependencies": { + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.10.0" + } + }, "node_modules/rollup-plugin-replace": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz", @@ -28436,6 +28474,14 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "requires": { + "@types/node": "*" + } + }, "@types/responselike": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", @@ -29980,6 +30026,11 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==" + }, "builtins": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", @@ -34026,6 +34077,7 @@ "govuk_frontend_toolkit": "^9.0.1", "govuk_template_jinja": "^0.26.0", "govuk-elements-sass": "3.1.3", + "govuk-frontend": "*", "gulp": "^4.0.2", "gulp-cli": "^2.3.0", "highlight.js": "^11.7.0", @@ -35204,6 +35256,11 @@ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, "is-negated-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", @@ -41116,6 +41173,17 @@ } } }, + "rollup-plugin-node-resolve": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-4.2.4.tgz", + "integrity": "sha512-t/64I6l7fZ9BxqD3XlX4ZeO6+5RLKyfpwE2CiPNUKa+GocPlQhf/C208ou8y3AwtNsc6bjSk/8/6y/YAyxCIvw==", + "requires": { + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.10.0" + } + }, "rollup-plugin-replace": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz", diff --git a/package.json b/package.json index 0179cd6ae0..6972f9d8a9 100644 --- a/package.json +++ b/package.json @@ -76,6 +76,7 @@ "postcss-unrgba": "^1.1.1", "puppeteer": "^19.8.2", "rollup": "0.59.4", + "rollup-plugin-node-resolve": "^4.2.4", "rollup-plugin-replace": "^2.2.0", "sass-embedded": "^1.60.0", "sassdoc": "^2.7.4", diff --git a/tasks/scripts.mjs b/tasks/scripts.mjs index b1b23e55cd..2ef253ecc5 100644 --- a/tasks/scripts.mjs +++ b/tasks/scripts.mjs @@ -2,6 +2,7 @@ import { join, parse } from 'path' import PluginError from 'plugin-error' import { rollup } from 'rollup' +import resolve from 'rollup-plugin-node-resolve' import replace from 'rollup-plugin-replace' import { minify } from 'terser' @@ -42,7 +43,9 @@ export async function compileJavaScript ([modulePath, { srcPath, destPath, fileP const moduleDestPath = join(destPath, filePath ? filePath(parse(modulePath)) : modulePath) // Rollup plugins - const plugins = [] + const plugins = [ + resolve() + ] if (!isDev) { // Add GOV.UK Frontend release version