I have been lazy loading modules in routes e.g.
export const HomeRoute: Route = {
path: '',
component: HomeComponent,
canActivate: [AuthGuard],
children: [
{path: 'dashboard', loadChildren: 'app/+dashboard/db.module#DashboardModule'}
]
};
I would like to put my "pages" into NPM modules. What is the route to the node_module that I should use in the loadChildren attribute? I am using angular-cli 1.0.0-beta.16
I have tried
{path: 'lazy', loadChildren: '../node_modules/hello-world/components#HelloWorld' }
also
{path: 'lazy', loadChildren: 'hello-world/components#HelloWorld' }
The exported class is: -
import {Component} from '@angular/core';
@Component({
selector: 'hello-world',
styles: [`
h1 {
color: blue;
}
`],
template: `<div>
<h1 (click)="onClick()">{{message}}</h1>
</div>`
})
export class HelloWorld {
message = "Click Me ...";
onClick() {
this.message = "Hello World!";
console.log(this.message);
}
}
Is there anything else I should try?
This currently isn't possible - see a response from the AngularJS CLI team here: -
https://github.com/angular/angular-cli/issues/2601
Datumgeek has implemented lazy loading from modules in a different way (outside of CLI) here: - https://github.com/datumgeek/a2dyn/blob/master/README.md#development-server
I will update the answer if it becomes possible in the Angular CLI in the future
check that HelloWorld is an exported class and not a 'default export'. otherwise it won't work.