@@ -13,20 +13,24 @@ const repoRoot = join(__dirname, "../../"); // back to repo root
1313const reviewSrc = join ( __dirname , "src" ) ;
1414const reviewDist = join ( __dirname , "dist" ) ;
1515
16+ // Correct NHS.UK v10 dist path
17+ const nhsukDist = join ( repoRoot , "node_modules/nhsuk-frontend/dist/nhsuk" ) ;
18+
1619// TEL frontend package paths
1720const telFrontendDir = join ( repoRoot , "packages/tel-frontend" ) ;
1821const telFrontendDist = join ( telFrontendDir , "dist" ) ;
19- const telFrontendSrcScss = join ( telFrontendDir , "src/styles.scss" ) ;
2022
2123// -------- Helpers --------
2224
2325// Build the TEL Frontend package (CSS + JS) using Gulp
2426async function buildTelFrontend ( ) {
2527 console . log ( "Building TEL Frontend CSS + JS via Gulp..." ) ;
2628
29+ // Ensure dist folder exists and is clean
2730 await fse . emptyDir ( telFrontendDist ) ;
2831 await fse . ensureDir ( telFrontendDist ) ;
2932
33+ // Run Gulp build inside tel-frontend package
3034 try {
3135 execSync ( "npx gulp build" , {
3236 cwd : telFrontendDir ,
@@ -40,22 +44,30 @@ async function buildTelFrontend() {
4044 console . log ( "TEL Frontend CSS/JS built successfully" ) ;
4145}
4246
43- // Copy TEL frontend built files + review-specific assets
47+ // Copy built TEL frontend files + NHS frontend assets + review-specific assets
4448async function buildReviewAssets ( ) {
4549 console . log ( "Copying review site assets..." ) ;
4650
4751 await fse . ensureDir ( join ( reviewDist , "stylesheets" ) ) ;
4852 await fse . ensureDir ( join ( reviewDist , "javascripts" ) ) ;
4953
50- // ✅ No more NHS dist copy — NHS styles now come in via Sass
54+ // Copy NHS.UK frontend dist (v10 paths)
55+ await fse . copy (
56+ join ( nhsukDist , "nhsuk-frontend.min.css" ) ,
57+ join ( reviewDist , "stylesheets/nhsuk.min.css" )
58+ ) ;
59+ await fse . copy (
60+ join ( nhsukDist , "nhsuk-frontend.min.js" ) ,
61+ join ( reviewDist , "javascripts/nhsuk.min.js" )
62+ ) ;
5163
5264 // Copy TEL frontend built files
5365 await fse . copy (
5466 join ( telFrontendDist , "tel-frontend.css" ) ,
5567 join ( reviewDist , "stylesheets/tel-frontend.css" )
5668 ) ;
5769 await fse . copy (
58- join ( telFrontendDist , "tel-frontend .min.js" ) ,
70+ join ( telFrontendDist , "tel.min.js" ) ,
5971 join ( reviewDist , "javascripts/tel.min.js" )
6072 ) ;
6173
@@ -68,13 +80,13 @@ async function buildReviewAssets() {
6880 console . log ( "Review site assets copied" ) ;
6981}
7082
71- // Compile review site SCSS (for review site-specific + NHS styles)
83+ // Compile review site SCSS (for review site-specific styles)
7284async function buildReviewCSS ( ) {
7385 console . log ( "Building review site CSS..." ) ;
7486
7587 const css = sass . compile ( join ( reviewSrc , "scss/main.scss" ) , {
7688 style : "expanded" ,
77- loadPaths : [ "node_modules" ] , // allows @use "nhsuk-frontend/..." etc.
89+ loadPaths : [ "node_modules" ] ,
7890 } ) ;
7991
8092 const outDir = join ( reviewDist , "stylesheets" ) ;
@@ -88,20 +100,18 @@ async function buildReviewCSS() {
88100async function buildReviewHtml ( ) {
89101 console . log ( "Rendering review site HTML..." ) ;
90102
91- const telComponents = join (
92- repoRoot ,
93- "packages/tel-frontend/src/tel/components"
94- ) ;
103+ const telComponents = join ( repoRoot , "packages/tel-frontend/src/tel/components" ) ;
95104
96105 const env = nunjucks . configure (
97106 [
98- reviewSrc , // review site source
99- join ( repoRoot , "node_modules/nhsuk-frontend/packages " ) , // NHS macros live here in v10
100- telComponents , // TEL frontend macros
107+ reviewSrc , // review site source
108+ join ( repoRoot , "node_modules/nhsuk-frontend" ) , // NHS macros
109+ telComponents // TEL frontend macros
101110 ] ,
102111 { autoescape : true }
103112 ) ;
104113
114+ // Render root-level .njk files
105115 const files = await fse . readdir ( reviewSrc ) ;
106116 for ( const file of files ) {
107117 if ( file . endsWith ( ".njk" ) ) {
@@ -140,9 +150,16 @@ async function build() {
140150 try {
141151 await fse . emptyDir ( reviewDist ) ;
142152
153+ // Step 1: Build TEL frontend (CSS + JS) via Gulp
143154 await buildTelFrontend ( ) ;
155+
156+ // Step 2: Copy assets (TEL + NHS + review site)
144157 await buildReviewAssets ( ) ;
158+
159+ // Step 3: Compile review site SCSS
145160 await buildReviewCSS ( ) ;
161+
162+ // Step 4: Render HTML pages
146163 await buildReviewHtml ( ) ;
147164
148165 console . log ( "Review site build finished successfully" ) ;
0 commit comments