From 3b5f4a21cefb43ed8044ef941bb55cb1fff77f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leosvel=20P=C3=A9rez=20Espinosa?= Date: Fri, 2 Feb 2024 12:00:03 +0100 Subject: [PATCH] fix(angular): handle indexHtmlTransformer option in dev-server correctly (#21520) --- .../packages/angular/executors/webpack-browser.json | 5 +++-- .../angular/src/builders/dev-server/dev-server.impl.ts | 9 +++++++-- .../angular/src/builders/webpack-browser/schema.d.ts | 6 +++++- .../angular/src/builders/webpack-browser/schema.json | 5 +++-- .../src/builders/webpack-browser/webpack-browser.impl.ts | 7 +++++-- 5 files changed, 23 insertions(+), 9 deletions(-) diff --git a/docs/generated/packages/angular/executors/webpack-browser.json b/docs/generated/packages/angular/executors/webpack-browser.json index 3b49517589..a40c575585 100644 --- a/docs/generated/packages/angular/executors/webpack-browser.json +++ b/docs/generated/packages/angular/executors/webpack-browser.json @@ -554,9 +554,10 @@ "x-priority": "important", "additionalProperties": false }, - "indexFileTransformer": { + "indexHtmlTransformer": { "description": "Path to transformer function to transform the index.html", - "type": "string" + "type": "string", + "alias": "indexFileTransformer" }, "buildLibsFromSource": { "type": "boolean", diff --git a/packages/angular/src/builders/dev-server/dev-server.impl.ts b/packages/angular/src/builders/dev-server/dev-server.impl.ts index ae6a7c147d..cc0f47dcac 100644 --- a/packages/angular/src/builders/dev-server/dev-server.impl.ts +++ b/packages/angular/src/builders/dev-server/dev-server.impl.ts @@ -44,6 +44,7 @@ type BuildTargetOptions = { tsConfig: string; buildLibsFromSource?: boolean; customWebpackConfig?: { path?: string }; + indexHtmlTransformer?: string; indexFileTransformer?: string; plugins?: string[] | PluginSpec[]; esbuildMiddleware?: string[]; @@ -111,11 +112,14 @@ export function executeDevServerBuilder( } } + const normalizedIndexHtmlTransformer = + buildTargetOptions.indexHtmlTransformer ?? + buildTargetOptions.indexFileTransformer; let pathToIndexFileTransformer: string; - if (buildTargetOptions.indexFileTransformer) { + if (normalizedIndexHtmlTransformer) { pathToIndexFileTransformer = joinPathFragments( context.workspaceRoot, - buildTargetOptions.indexFileTransformer + normalizedIndexHtmlTransformer ); if (pathToIndexFileTransformer && !existsSync(pathToIndexFileTransformer)) { @@ -313,6 +317,7 @@ function cleanBuildTargetOptions( | BrowserEsbuildBuilderOptions { delete options.buildLibsFromSource; delete options.customWebpackConfig; + delete options.indexHtmlTransformer; delete options.indexFileTransformer; delete options.plugins; diff --git a/packages/angular/src/builders/webpack-browser/schema.d.ts b/packages/angular/src/builders/webpack-browser/schema.d.ts index 7df96c634f..ee1a305028 100644 --- a/packages/angular/src/builders/webpack-browser/schema.d.ts +++ b/packages/angular/src/builders/webpack-browser/schema.d.ts @@ -4,6 +4,10 @@ export type BrowserBuilderSchema = Schema & { customWebpackConfig?: { path: string; }; - indexFileTransformer?: string; + indexHtmlTransformer?: string; buildLibsFromSource?: boolean; + /** + * @deprecated Use `indexHtmlTransformer` instead. It will be removed in Nx 19. + */ + indexFileTransformer?: string; }; diff --git a/packages/angular/src/builders/webpack-browser/schema.json b/packages/angular/src/builders/webpack-browser/schema.json index 932562c8a7..7100911688 100644 --- a/packages/angular/src/builders/webpack-browser/schema.json +++ b/packages/angular/src/builders/webpack-browser/schema.json @@ -458,9 +458,10 @@ "x-priority": "important", "additionalProperties": false }, - "indexFileTransformer": { + "indexHtmlTransformer": { "description": "Path to transformer function to transform the index.html", - "type": "string" + "type": "string", + "alias": "indexFileTransformer" }, "buildLibsFromSource": { "type": "boolean", diff --git a/packages/angular/src/builders/webpack-browser/webpack-browser.impl.ts b/packages/angular/src/builders/webpack-browser/webpack-browser.impl.ts index 35a9325338..9247a6e6c3 100644 --- a/packages/angular/src/builders/webpack-browser/webpack-browser.impl.ts +++ b/packages/angular/src/builders/webpack-browser/webpack-browser.impl.ts @@ -55,6 +55,7 @@ export function executeWebpackBrowserBuilder( const { buildLibsFromSource, customWebpackConfig, + indexHtmlTransformer, indexFileTransformer, ...delegateBuilderOptions } = options; @@ -71,9 +72,11 @@ export function executeWebpackBrowserBuilder( ); } + const normalizedIndexHtmlTransformer = + indexHtmlTransformer ?? indexFileTransformer; const pathToIndexFileTransformer = - indexFileTransformer && - joinPathFragments(context.workspaceRoot, indexFileTransformer); + normalizedIndexHtmlTransformer && + joinPathFragments(context.workspaceRoot, normalizedIndexHtmlTransformer); if (pathToIndexFileTransformer && !existsSync(pathToIndexFileTransformer)) { throw new Error( `File containing Index File Transformer function Not Found!\n Please ensure the path to the file containing the function is correct: \n${pathToIndexFileTransformer}`