@@ -4,9 +4,9 @@ import * as ts from 'typescript';
4
4
5
5
import { __NGTOOLS_PRIVATE_API_2 } from '@angular/compiler-cli' ;
6
6
import { AngularCompilerOptions } from '@angular/tsc-wrapped' ;
7
+ const ContextElementDependency = require ( 'webpack/lib/dependencies/ContextElementDependency' ) ;
7
8
8
9
import { WebpackResourceLoader } from './resource_loader' ;
9
- import { createResolveDependenciesFromContextMap } from './utils' ;
10
10
import { WebpackCompilerHost } from './compiler_host' ;
11
11
import { resolveEntryModuleFromMain } from './entry_resolver' ;
12
12
import { Tapable } from './webpack' ;
@@ -194,45 +194,30 @@ export class AotPlugin implements Tapable {
194
194
apply ( compiler : any ) {
195
195
this . _compiler = compiler ;
196
196
197
+ // Add lazy modules to the context module for @angular /core/src/linker
197
198
compiler . plugin ( 'context-module-factory' , ( cmf : any ) => {
198
- cmf . plugin ( 'before-resolve' , ( request : any , callback : ( err ?: any , request ?: any ) => void ) => {
199
- if ( ! request ) {
200
- return callback ( ) ;
201
- }
202
-
203
- // alter only request from @angular /core/src/linker
204
- if ( ! request . context . endsWith ( path . join ( '@angular/core/src/linker' ) ) ) {
205
- return callback ( null , request ) ;
206
- }
207
-
208
- request . request = this . skipCodeGeneration ? this . basePath : this . genDir ;
209
- request . recursive = true ;
210
- request . dependencies . forEach ( ( d : any ) => d . critical = false ) ;
211
- return callback ( null , request ) ;
212
- } ) ;
213
199
cmf . plugin ( 'after-resolve' , ( result : any , callback : ( err ?: any , request ?: any ) => void ) => {
214
200
if ( ! result ) {
215
201
return callback ( ) ;
216
202
}
217
203
218
- // there is no way to find the original request, so try to
219
- // match request from @angular /core/src/linker as best as possible
220
- if (
221
- result . resource == ( this . skipCodeGeneration ? this . basePath : this . genDir )
222
- && result . recursive == true
223
- && result . dependencies . every ( ( d : any ) => d . critical == false )
224
- ) {
225
- this . done . then ( ( ) => {
226
- result . resolveDependencies = createResolveDependenciesFromContextMap (
227
- this . _lazyRoutes ,
228
- result . resolveDependencies
229
- ) ;
230
- return callback ( null , result ) ;
231
- } , ( ) => callback ( null ) )
232
- . catch ( err => callback ( err ) ) ;
233
- } else {
204
+ // alter only request from @angular /core/src/linker
205
+ if ( ! result . resource . endsWith ( path . join ( '@angular/core/src/linker' ) ) ) {
234
206
return callback ( null , result ) ;
235
207
}
208
+
209
+ this . done . then ( ( ) => {
210
+ result . resource = this . skipCodeGeneration ? this . basePath : this . genDir ;
211
+ result . recursive = true ;
212
+ result . dependencies . forEach ( ( d : any ) => d . critical = false ) ;
213
+ result . resolveDependencies = ( p1 : any , p2 : any , p3 : any , p4 : RegExp , cb : any ) => {
214
+ const dependencies = Object . keys ( this . _lazyRoutes )
215
+ . map ( ( key ) => new ContextElementDependency ( this . _lazyRoutes [ key ] , key ) ) ;
216
+ cb ( null , dependencies ) ;
217
+ } ;
218
+ return callback ( null , result ) ;
219
+ } , ( ) => callback ( null ) )
220
+ . catch ( err => callback ( err ) ) ;
236
221
} ) ;
237
222
} ) ;
238
223
0 commit comments