I would like to use lazy loading but I can not understand why it does not work, it gives me error \"Cannot find module\".
This is my environment:
- Angular 5.2.1
I have found two solutions (via the OP by edit):
Reference to the module, after it has already been resolved with an import statement:
import { UsersModule } from './components/users/users.module';
then referencing this way:
{
path: 'users',
loadChildren: () => UsersModule,
canLoad: [AuthGuard]
}
I have added ng-router-loader to the application (npm install ng-router-loader --save-dev) and I set up Webpack like this:
rules: [{
test: /\.ts$/,
include: /ClientApp/,
//use: isDevBuild ? ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] : '@ngtools/webpack'
use: isDevBuild ? [{ loader: 'ng-router-loader' }, 'awesome-typescript-loader?silent=true', 'angular2-template-loader'] : '@ngtools/webpack'
},
{
test: /\.html$/,
use: 'html-loader?minimize=false'
},
{
test: /\.css$/,
use: ['to-string-loader', isDevBuild ? 'css-loader' : 'css-loader?minimize']
},
{
test: /\.(png|jpg|jpeg|gif|svg)$/,
use: 'url-loader?limit=25000'
}
],
then referencing the module by path:
{
path: 'users',
loadChildren: './components/users/users.module#UsersModule',
canLoad: [AuthGuard]
}