From e33f035dc4605535a946c8ab869bb2d4431748c0 Mon Sep 17 00:00:00 2001 From: Juri Date: Fri, 4 Dec 2020 16:30:16 +0100 Subject: [PATCH] fix(angular): check whether deps have been built when using incremental build --- .../webpack-browser/webpack-browser.impl.ts | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) 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 c88bea50eb..335a819cc8 100644 --- a/packages/angular/src/builders/webpack-browser/webpack-browser.impl.ts +++ b/packages/angular/src/builders/webpack-browser/webpack-browser.impl.ts @@ -4,9 +4,10 @@ import { createBuilder, } from '@angular-devkit/architect'; import { JsonObject } from '@angular-devkit/core'; -import { from, Observable } from 'rxjs'; +import { from, Observable, of } from 'rxjs'; import { calculateProjectDependencies, + checkDependentProjectsHaveBeenBuilt, createTmpTsConfig, } from '@nrwl/workspace/src/utils/buildable-libs-utils'; import { join } from 'path'; @@ -19,10 +20,12 @@ function run( context: BuilderContext ): Observable { const projGraph = createProjectGraph(); + const { target, dependencies } = calculateProjectDependencies( projGraph, context ); + options.tsConfig = createTmpTsConfig( join(context.workspaceRoot, options.tsConfig), context.workspaceRoot, @@ -30,12 +33,25 @@ function run( dependencies ); - return from( - context.scheduleBuilder('@angular-devkit/build-angular:browser', options, { - target: context.target, - logger: context.logger as any, + return of(checkDependentProjectsHaveBeenBuilt(context, dependencies)).pipe( + switchMap((result) => { + if (result) { + return from( + context.scheduleBuilder( + '@angular-devkit/build-angular:browser', + options, + { + target: context.target, + logger: context.logger as any, + } + ) + ).pipe(switchMap((x) => x.result)); + } else { + // just pass on the result + return of({ success: false }); + } }) - ).pipe(switchMap((x) => x.result)); + ); } export default createBuilder(run);