Skip to content
Permalink
Browse files

revert: "fix(ivy): recompile component when template changes in ngc w…

…atch mode (#33551)" (#33661)

This reverts commit 8912b11.

PR Close #33661
  • Loading branch information
atscott committed Nov 7, 2019
1 parent cd8333c commit cb55f60c7429d184ef3c73c5c3c409a2c003031e
@@ -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<string>): 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;
}
}
@@ -109,7 +109,6 @@ ts_library(
":test_utils",
"//packages/compiler",
"//packages/compiler-cli",
"//packages/private/testing",
"@npm//typescript",
],
)
@@ -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);

0 comments on commit cb55f60

Please sign in to comment.
You can’t perform that action at this time.