Angular 5 lazy loading Error: Cannot find module

前端 未结 8 1902
栀梦
栀梦 2021-01-02 08:13

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

8条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-01-02 08:38

    I have found two solutions (via the OP by edit):

    1. 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]
    }
    
    1. 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]
        }
    

提交回复
热议问题