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.
  • Loading branch information
maleetz committed Apr 21, 2017
1 parent 446dc65 commit 18ee60b
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 @@ -461,7 +461,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.join(path.sep, path.relative(this.basePath, factoryPath));
this._lazyRoutes[k + '.ngfactory'] = path.join(this.genDir, lr);
}
});
Expand Down

0 comments on commit 18ee60b

Please sign in to comment.