From b972d57537ea76a81c44678e1a7f1d7b677edc65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AA=BF=E6=9C=88=E5=A5=8F?= <9085560+Tsuki@users.noreply.github.com> Date: Wed, 19 Dec 2018 15:42:25 +0700 Subject: [PATCH] fix(@angular-devkit/build-angular): script chunk in angular.json return false then calling isInitial This commit add the webpack chunk with it related chunkgroup or entrypoint --- .../plugins/scripts-webpack-plugin.ts | 2 +- .../test/browser/scripts-array_spec_large.ts | 20 ++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/angular_devkit/build_angular/src/angular-cli-files/plugins/scripts-webpack-plugin.ts b/packages/angular_devkit/build_angular/src/angular-cli-files/plugins/scripts-webpack-plugin.ts index 51d0c8ed8b2b..acb79134e8bd 100644 --- a/packages/angular_devkit/build_angular/src/angular-cli-files/plugins/scripts-webpack-plugin.ts +++ b/packages/angular_devkit/build_angular/src/angular-cli-files/plugins/scripts-webpack-plugin.ts @@ -83,7 +83,7 @@ export class ScriptsWebpackPlugin { const entrypoint = new EntryPoint(this.options.name); entrypoint.pushChunk(chunk); - + chunk.addGroup(entrypoint); compilation.entrypoints.set(this.options.name, entrypoint); compilation.chunks.push(chunk); compilation.assets[filename] = source; diff --git a/packages/angular_devkit/build_angular/test/browser/scripts-array_spec_large.ts b/packages/angular_devkit/build_angular/test/browser/scripts-array_spec_large.ts index 40ab2b5fa8d0..3e384dd48efa 100644 --- a/packages/angular_devkit/build_angular/test/browser/scripts-array_spec_large.ts +++ b/packages/angular_devkit/build_angular/test/browser/scripts-array_spec_large.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ -import { DefaultTimeout, runTargetSpec } from '@angular-devkit/architect/testing'; +import { DefaultTimeout, TestLogger, runTargetSpec } from '@angular-devkit/architect/testing'; import { PathFragment, join, normalize, virtualFs } from '@angular-devkit/core'; import { tap } from 'rxjs/operators'; import { browserTargetSpec, host } from '../utils'; @@ -133,4 +133,22 @@ describe('Browser Builder scripts array', () => { }), ).toPromise().then(done, done.fail); }); + + it('chunk in entry', (done) => { + host.writeMultipleFiles(scripts); + + const overrides = { scripts: getScriptsOption() }; + const logger = new TestLogger('build-script-entry'); + + runTargetSpec(host, browserTargetSpec, overrides, DefaultTimeout, logger).pipe( + tap((buildEvent) => expect(buildEvent.success).toBe(true)), + tap(() => { + const validate = ` [entry] [rendered]`; + expect(logger.includes(`(lazy-script) 69 bytes${validate}`)).toBe(true); + expect(logger.includes(`(renamed-script) 78 bytes${validate}`)).toBe(true); + expect(logger.includes(`(renamed-lazy-script) 88 bytes${validate}`)).toBe(true); + logger.clear(); + }), + ).toPromise().then(done, done.fail); + }); });