diff --git a/packages/compiler-cli/src/perform_watch.ts b/packages/compiler-cli/src/perform_watch.ts index c9e802dc37..095c44197c 100644 --- a/packages/compiler-cli/src/perform_watch.ts +++ b/packages/compiler-cli/src/perform_watch.ts @@ -153,7 +153,7 @@ export function performWatchCompilation(host: PerformWatchHost): } // Invoked to perform initial compilation or re-compilation in watch mode - function doCompilation(): Diagnostics { + function doCompilation(modifiedResourceFiles?: Set): Diagnostics { if (!cachedOptions) { cachedOptions = host.readConfiguration(); } @@ -197,12 +197,8 @@ export function performWatchCompilation(host: PerformWatchHost): return ce.content !; }; // Provide access to the file paths that triggered this rebuild - cachedCompilerHost.getModifiedResourceFiles = function() { - if (timerHandleForRecompilation === undefined) { - return undefined; - } - return timerHandleForRecompilation.modifiedResourceFiles; - }; + cachedCompilerHost.getModifiedResourceFiles = + modifiedResourceFiles !== undefined ? () => modifiedResourceFiles : undefined; } ignoreFilesForWatch.clear(); const oldProgram = cachedProgram; @@ -291,7 +287,7 @@ export function performWatchCompilation(host: PerformWatchHost): function recompile() { host.reportDiagnostics( [createMessageDiagnostic('File change detected. Starting incremental compilation.')]); - doCompilation(); + doCompilation(timerHandleForRecompilation !.modifiedResourceFiles); timerHandleForRecompilation = undefined; } } diff --git a/packages/compiler-cli/test/BUILD.bazel b/packages/compiler-cli/test/BUILD.bazel index 3c651e6540..2c06400846 100644 --- a/packages/compiler-cli/test/BUILD.bazel +++ b/packages/compiler-cli/test/BUILD.bazel @@ -109,7 +109,6 @@ ts_library( ":test_utils", "//packages/compiler", "//packages/compiler-cli", - "//packages/private/testing", "@npm//typescript", ], ) diff --git a/packages/compiler-cli/test/perform_watch_spec.ts b/packages/compiler-cli/test/perform_watch_spec.ts index 70e22ffc85..b38d732ebf 100644 --- a/packages/compiler-cli/test/perform_watch_spec.ts +++ b/packages/compiler-cli/test/perform_watch_spec.ts @@ -6,7 +6,6 @@ * found in the LICENSE file at https://angular.io/license */ -import {ivyEnabled} from '@angular/private/testing'; import * as fs from 'fs'; import * as path from 'path'; import * as ts from 'typescript'; @@ -25,8 +24,8 @@ describe('perform watch', () => { outDir = path.resolve(testSupport.basePath, 'outDir'); }); - function createConfig(overrideOptions: ng.CompilerOptions = {}): ng.ParsedConfiguration { - const options = testSupport.createCompilerOptions({outDir, ...overrideOptions}); + function createConfig(): ng.ParsedConfiguration { + const options = testSupport.createCompilerOptions({outDir}); return { options, rootNames: [path.resolve(testSupport.basePath, 'src/index.ts')], @@ -51,33 +50,6 @@ describe('perform watch', () => { expect(fs.existsSync(path.resolve(outDir, 'src', 'main.ngfactory.js'))).toBe(true); }); - it('should recompile components when its template changes', () => { - const config = createConfig({enableIvy: ivyEnabled}); - const host = new MockWatchHost(config); - - testSupport.writeFiles({ - 'src/main.ts': createModuleAndCompSource('main', './main.html'), - 'src/main.html': 'initial', - 'src/index.ts': `export * from './main'; `, - }); - - const watchResult = performWatchCompilation(host); - expectNoDiagnostics(config.options, watchResult.firstCompileResult); - - const htmlPath = path.resolve(testSupport.basePath, 'src', 'main.html'); - const genPath = ivyEnabled ? path.resolve(outDir, 'src', 'main.js') : - path.resolve(outDir, 'src', 'main.ngfactory.js'); - - const initial = fs.readFileSync(genPath, {encoding: 'utf8'}); - expect(initial).toContain('"initial"'); - - fs.writeFileSync(htmlPath, 'updated'); - host.triggerFileChange(FileChangeEvent.Change, htmlPath); - - const updated = fs.readFileSync(genPath, {encoding: 'utf8'}); - expect(updated).toContain('"updated"'); - }); - it('should cache files on subsequent runs', () => { const config = createConfig(); const host = new MockWatchHost(config);