From a78fe65d81600e2f1b522722b6ce6374b8c652d3 Mon Sep 17 00:00:00 2001 From: Jordan Hall Date: Tue, 11 May 2021 14:32:56 +0100 Subject: [PATCH] feat(angular): add support for a target Builder (#4903) Ability to support incremental builds when using target builders ISSUES CLOSED: #4896 --- docs/angular/api-angular/executors/webpack-browser.md | 8 ++++++++ docs/node/api-angular/executors/webpack-browser.md | 8 ++++++++ docs/react/api-angular/executors/webpack-browser.md | 8 ++++++++ packages/angular/src/builders/webpack-browser/schema.json | 7 ++++++- .../src/builders/webpack-browser/webpack-browser.impl.ts | 7 ++++++- 5 files changed, 36 insertions(+), 2 deletions(-) diff --git a/docs/angular/api-angular/executors/webpack-browser.md b/docs/angular/api-angular/executors/webpack-browser.md index 1c4deaa3524cc..e87fa3d3450fa 100644 --- a/docs/angular/api-angular/executors/webpack-browser.md +++ b/docs/angular/api-angular/executors/webpack-browser.md @@ -304,6 +304,14 @@ Type: `boolean` Enables the use of subresource integrity validation. +### targetBuilder + +Default: `@angular-devkit/build-angular:browser` + +Type: `string` + +Override default Angular browser builder + ### tsConfig Type: `string` diff --git a/docs/node/api-angular/executors/webpack-browser.md b/docs/node/api-angular/executors/webpack-browser.md index dd089f1bfc1ea..4771a7d1d0de0 100644 --- a/docs/node/api-angular/executors/webpack-browser.md +++ b/docs/node/api-angular/executors/webpack-browser.md @@ -305,6 +305,14 @@ Type: `boolean` Enables the use of subresource integrity validation. +### targetBuilder + +Default: `@angular-devkit/build-angular:browser` + +Type: `string` + +Override default Angular browser builder + ### tsConfig Type: `string` diff --git a/docs/react/api-angular/executors/webpack-browser.md b/docs/react/api-angular/executors/webpack-browser.md index 2b35ac1f377b9..aae65f107ace5 100644 --- a/docs/react/api-angular/executors/webpack-browser.md +++ b/docs/react/api-angular/executors/webpack-browser.md @@ -305,6 +305,14 @@ Type: `boolean` Enables the use of subresource integrity validation. +### targetBuilder + +Default: `@angular-devkit/build-angular:browser` + +Type: `string` + +Override default Angular browser builder + ### tsConfig Type: `string` diff --git a/packages/angular/src/builders/webpack-browser/schema.json b/packages/angular/src/builders/webpack-browser/schema.json index 15adc9ce92ac2..9ebd2f1858c79 100644 --- a/packages/angular/src/builders/webpack-browser/schema.json +++ b/packages/angular/src/builders/webpack-browser/schema.json @@ -369,9 +369,14 @@ "type": "string" }, "default": [] + }, + "targetBuilder": { + "description": "Override default Angular browser builder", + "type": "string", + "default": "@angular-devkit/build-angular:browser" } }, - "additionalProperties": false, + "additionalProperties": true, "required": ["outputPath", "index", "main", "tsConfig"], "definitions": { "assetPattern": { 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 42a69e9d45f59..daa4887f22a18 100644 --- a/packages/angular/src/builders/webpack-browser/webpack-browser.impl.ts +++ b/packages/angular/src/builders/webpack-browser/webpack-browser.impl.ts @@ -28,8 +28,13 @@ function buildApp( ): Promise { const { buildTarget, ...delegateOptions } = options; + // delete targetBuilder from options before passing into scheduleBuilder + const targetBuilder = + (delegateOptions.targetBuilder as string) || buildTarget; + delete delegateOptions.targetBuilder; + if (buildTarget) { - const target = targetFromTargetString(buildTarget); + const target = targetFromTargetString(targetBuilder); return context.scheduleTarget(target, delegateOptions, { target: context.target, logger: context.logger as any,