2017-02-09 2 views
0

Я использую asp-net core и угловой 2 веб-проект. Я хочу реализовать модульную ленивую концепцию загрузки в своем текущем приложении, но ее не работающая для меня попытка почти всех доступных решений.Lazy загрузочные модули угловые 2 и ядро ​​asp-net

ClientApp \ App \ компоненты \ главная \ home.routing.module.ts

const routes: Routes = [ 
    { 
     path: 'home', component: HomeComponent, 
     children: [ 
      { path: '', redirectTo: 'dashboard', pathMatch: 'full' }, 
      { path: 'dashboard', component: DashboardComponent } 
     ] 
    } 
] 

export const routableComponents = [DashboardComponent] 
@NgModule({ 
    imports: [CommonModule, RouterModule.forChild(routes)], 
    exports: [RouterModule], 
    declarations: [routableComponents] 
}) 
export class HomeRoutingModule { 
} 

приложение-маршрутизации module.ts

const routes: Routes = [ 
    { path: '', redirectTo: 'login', pathMatch: 'full' }, 
    { path: 'login', component: LoginComponent }, 
    { path: 'register-user', component: RegisterUserComponent }, 
    { path: 'home', loadChildren: "./components/home/home.routing.module#HomeRoutingModule" }, 
    { path: '**', redirectTo: 'login' } 

я получаю это ошибка с вышеупомянутым кодом

EXCEPTION: Uncaught (in promise): TypeError: webpack_require.i(...) is not a function TypeError: webpack_require.i(...) is not a function

также используют этот пакет согласно предложил here

"angular2-router-loader": "0.3.4" 

webpack.config.js

const sharedConfig = { 
     stats: { modules: false }, 
     context: __dirname, 
     resolve: { extensions: ['.js', '.ts'] }, 
     output: { 
      filename: '[name].js', 
      publicPath: '/dist/' // Webpack dev middleware, if enabled, handles requests for this URL prefix 
     }, 
     module: { 
      rules: [ 
       { 
        test: /\.ts$/, include: /ClientApp/, use: ['awesome-typescript-loader?silent=true', 'angular2-template-loader', 
        'angular2-router-loader'] 
       }, 
       { test: /\.html$/, use: 'html-loader?minimize=false' }, 
       { test: /\.css$/, use: ['to-string-loader', 'css-loader'] }, 
       { test: /\.(png|jpg|jpeg|gif|svg)$/, use: 'url-loader?limit=25000' } 
      ] 
     }, 
     plugins: [new CheckerPlugin()] 
    } 

Просьба предложить то, что я делаю неправильно.

+0

Путь к домашней маршрутизации может потребоваться помощь. Это может быть недостаток понимания с моей стороны, но в проекте у меня есть ленивая загрузка. У меня есть следующее ... '{path: 'recipes', loadChildren: 'app/recipes/recipes.module # RecipesModule'}, 'обратите внимание, что он дает путь, начинающийся с' app', и не имеет '. /' спереди. Попробуй это? – Jarvis

+0

Также одна вещь, о которой вы не упомянули, - это тот процесс, который вы запускаете, чтобы получить эту ошибку. Вы пытаетесь построить/скомпилировать? Вы делаете AoT? Вы просто пытаетесь получить локальный сервер, работающий через npm run или что? – Jarvis

+0

после входа пользователя в приложение Я пытаюсь перенаправить на домашнюю страницу, которую я загружаю через ленивую загрузку, где ее не работает – RaviMittal

ответ

1

Проверьте вы WebPack конфигурации должны быть такими, вероятно, вы пропустили погрузчики для WebPack

// Configuration in common to both client-side and server-side bundles 
var sharedConfig = { 
    context: __dirname, 
    resolve: { extensions: [ '', '.js', '.ts' ] }, 
    output: { 
     filename: '[name].js', 
     publicPath: '/dist/' // Webpack dev middleware, if enabled, handles requests for this URL prefix 
    }, 
    module: { 
     loaders: [ 
      { test: /\.ts$/, include: /ClientApp/, loaders: ['ts-loader?silent=true', 'angular2-template-loader', 'angular2-router-loader'] }, 
      { test: /\.html$/, loader: 'html-loader?minimize=false' }, 
      { test: /\.css$/, loader: 'to-string-loader!css-loader' }, 
      { test: /\.(png|jpg|jpeg|gif|svg)$/, loader: 'url-loader', query: { limit: 25000 } }, 
      { test: /\.json$/, loader: 'json-loader' } 
     ] 
    } 
+0

У меня это похоже: use: ['awesome-typescript-loader? Silent = true', 'angular2- template-loader ',' angular2-router-loader '] вместо загрузчиков – RaviMittal

+0

обновил мой вопрос, вы можете проверить полную конфигурацию – RaviMittal

+0

Я использую «webpack»: «^ 2.2.0», согласно новому webpack module.loaders теперь module.rules, https://webpack.js.org/guides/migrating/ – RaviMittal