fix(angular): check whether deps have been built when using incremental build

This commit is contained in:
Juri 2020-12-04 16:30:16 +01:00 committed by Victor Savkin
parent fa67518892
commit e33f035dc4

View File

@ -4,9 +4,10 @@ import {
createBuilder, createBuilder,
} from '@angular-devkit/architect'; } from '@angular-devkit/architect';
import { JsonObject } from '@angular-devkit/core'; import { JsonObject } from '@angular-devkit/core';
import { from, Observable } from 'rxjs'; import { from, Observable, of } from 'rxjs';
import { import {
calculateProjectDependencies, calculateProjectDependencies,
checkDependentProjectsHaveBeenBuilt,
createTmpTsConfig, createTmpTsConfig,
} from '@nrwl/workspace/src/utils/buildable-libs-utils'; } from '@nrwl/workspace/src/utils/buildable-libs-utils';
import { join } from 'path'; import { join } from 'path';
@ -19,10 +20,12 @@ function run(
context: BuilderContext context: BuilderContext
): Observable<BuilderOutput> { ): Observable<BuilderOutput> {
const projGraph = createProjectGraph(); const projGraph = createProjectGraph();
const { target, dependencies } = calculateProjectDependencies( const { target, dependencies } = calculateProjectDependencies(
projGraph, projGraph,
context context
); );
options.tsConfig = createTmpTsConfig( options.tsConfig = createTmpTsConfig(
join(context.workspaceRoot, options.tsConfig), join(context.workspaceRoot, options.tsConfig),
context.workspaceRoot, context.workspaceRoot,
@ -30,12 +33,25 @@ function run(
dependencies dependencies
); );
return from( return of(checkDependentProjectsHaveBeenBuilt(context, dependencies)).pipe(
context.scheduleBuilder('@angular-devkit/build-angular:browser', options, { switchMap((result) => {
target: context.target, if (result) {
logger: context.logger as any, 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<JsonObject & BrowserBuilderSchema>(run); export default createBuilder<JsonObject & BrowserBuilderSchema>(run);