Skip to content

Commit

Permalink
fix(@ngtools/webpack): fix aot builds using npm packages that have la…
Browse files Browse the repository at this point in the history
…zy loaded modules

Currently, code splitting derived from routes with the loadChildren property only works
if the resolved source file is a *.ts file in the source directory of your angular-cli
project. If your project uses an npm package that has a route with loadChildren, the
build will resolve the lazy loaded module as a *.d.ts definition file and then attempt
to find an *.d.ts.ngfactory.ts file in the generated AOT directory, which does not exist.
This fixes the path generation logic so the build will look for a *.ngfactory.ts file
in $$_gendir/node_modules.

Closes #5594
  • Loading branch information
maleetz authored and Brocco committed May 24, 2017
1 parent 7159920 commit b59bccf
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion packages/@ngtools/webpack/src/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,8 @@ export class AotPlugin implements Tapable {
if (this.skipCodeGeneration) {
this._lazyRoutes[k] = lazyRoute;
} else {
const lr = path.relative(this.basePath, lazyRoute.replace(/\.ts$/, '.ngfactory.ts'));
const factoryPath = lazyRoute.replace(/(\.d)?\.ts$/, '.ngfactory.ts');
const lr = path.relative(this.basePath, factoryPath);
this._lazyRoutes[k + '.ngfactory'] = path.join(this.genDir, lr);
}
});
Expand Down

0 comments on commit b59bccf

Please sign in to comment.