@@ -103,6 +103,7 @@ export class AngularCompilerPlugin implements Tapable {
103
103
private _platform : PLATFORM ;
104
104
private _JitMode = false ;
105
105
private _emitSkipped = true ;
106
+ private _changedFileExtensions = new Set ( [ 'ts' , 'html' , 'css' ] ) ;
106
107
107
108
// Webpack plugin.
108
109
private _firstRun = true ;
@@ -292,9 +293,22 @@ export class AngularCompilerPlugin implements Tapable {
292
293
. filter ( k => this . _compilerHost . fileExists ( k ) ) ;
293
294
}
294
295
296
+ updateChangedFileExtensions ( extension : string ) {
297
+ if ( extension ) {
298
+ this . _changedFileExtensions . add ( extension ) ;
299
+ }
300
+ }
301
+
295
302
private _getChangedCompilationFiles ( ) {
296
303
return this . _compilerHost . getChangedFilePaths ( )
297
- . filter ( k => / \. (?: t s | h t m l | c s s | s c s s | s a s s | l e s s | s t y l ) $ / . test ( k ) ) ;
304
+ . filter ( k => {
305
+ for ( const ext of this . _changedFileExtensions ) {
306
+ if ( k . endsWith ( ext ) ) {
307
+ return true ;
308
+ }
309
+ }
310
+ return false ;
311
+ } ) ;
298
312
}
299
313
300
314
private _createOrUpdateProgram ( ) {
@@ -877,12 +891,16 @@ export class AngularCompilerPlugin implements Tapable {
877
891
const resourceImports = findResources ( sourceFile )
878
892
. map ( ( resourceReplacement ) => resourceReplacement . resourcePaths )
879
893
. reduce ( ( prev , curr ) => prev . concat ( curr ) , [ ] )
880
- . map ( ( resourcePath ) => path . resolve ( path . dirname ( resolvedFileName ) , resourcePath ) )
881
- . reduce ( ( prev , curr ) =>
882
- prev . concat ( ...this . getResourceDependencies ( curr ) ) , [ ] ) ;
894
+ . map ( ( resourcePath ) => path . resolve ( path . dirname ( resolvedFileName ) , resourcePath ) ) ;
883
895
884
896
// These paths are meant to be used by the loader so we must denormalize them.
885
- return [ ...esImports , ...resourceImports ] . map ( ( p ) => this . _compilerHost . denormalizePath ( p ) ) ;
897
+ const uniqueDependencies = new Set ( [
898
+ ...esImports ,
899
+ ...resourceImports ,
900
+ ...this . getResourceDependencies ( resolvedFileName )
901
+ ] . map ( ( p ) => this . _compilerHost . denormalizePath ( p ) ) ) ;
902
+
903
+ return [ ...uniqueDependencies ] ;
886
904
}
887
905
888
906
getResourceDependencies ( fileName : string ) : string [ ] {
0 commit comments