首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在生产中添加角5+ ASP.NET核心2应用程序中的延迟加载

无法在生产中添加角5+ ASP.NET核心2应用程序中的延迟加载
EN

Stack Overflow用户
提问于 2017-12-18 13:11:33
回答 1查看 928关注 0票数 1

我按照教程向我的应用程序添加了延迟加载。在本地服务器上一切正常,但是当我发布我的应用程序时,找不到错误模块。我使用的是角编译器Plugin.Here是我的package.json "dependencies": { "@angular/animations": "^5.0.0", "@angular/cdk": "^5.0.0", "@angular/common": "^5.0.0", "@angular/compiler": "^5.0.0", "@angular/compiler-cli": "^5.0.0", "@angular/core": "^5.0.0", "@angular/forms": "^5.0.0", "@angular/http": "^5.0.0", "@angular/material": "^5.0.0", "@angular/material-moment-adapter": "^5.0.0", "@angular/platform-browser": "^5.0.0", "@angular/platform-browser-dynamic": "^5.0.0", "@angular/platform-server": "^5.0.0", "@angular/router": "^5.0.0", "@ngtools/webpack": "^1.9.0", "@types/webpack-env": "1.13.0", "angular-router-loader": "^0.8.0", "angular2-infinite-scroll": "^0.3.5", "angular2-template-loader": "0.6.2", "aspnet-prerendering": "^3.0.1", "aspnet-webpack": "^2.0.1", "awesome-typescript-loader": "3.2.1", "bootstrap": "^3.3.7", "bootstrap-select": "^1.12.4", "css": "2.2.1", "css-loader": "0.28.4", "es6-shim": "0.35.3", "event-source-polyfill": "0.0.9", "expose-loader": "0.7.3", "extract-text-webpack-plugin": "2.1.2", "file-loader": "0.11.2", "font-awesome": "^4.7.0", "hammerjs": "^2.0.8", "html-loader": "0.4.5", "isomorphic-fetch": "2.2.1", "jquery": "^3.2.1", "json-loader": "0.5.4", "moment": "^2.19.4", "ng2-auto-complete": "^0.12.0", "ngx-bootstrap": "^1.9.3", "preboot": "4.5.2", "raw-loader": "0.5.1", "reflect-metadata": "0.1.10", "rxjs": "^5.5.2", "select2": "^4.0.4", "style-loader": "0.18.2", "to-string-loader": "1.1.5", "typescript": "2.4.2", "url-loader": "0.5.9", "webpack": "2.5.1", "webpack-hot-middleware": "2.18.2", "webpack-merge": "4.1.0", "zone.js": "0.8.12" }

我还尝试用这样的不同方法加载组件:

代码语言:javascript
复制
path: 'hero', loadChildren: () => {
    return Promise.resolve(require('./components/hero/hero.module')['HeroModule']);
} 

但是,我得到了对象类型的错误索引签名,它隐式地具有“任意”类型。

EN

回答 1

Stack Overflow用户

发布于 2017-12-18 14:12:12

我已经创建了4个模块,这些模块都是以角度加载的。 首先,您必须从app.module.ts文件中移除您想要延迟加载的模块,下面是示例,我延迟加载HomePage模块 app.module.ts

代码语言:javascript
复制
   import { NgModule} from '@angular/core';


//modules

   import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
   import { BrowserModule } from '@angular/platform-browser';



  //routing modules

    import { AppRoutingModule } from './app-routing.module';



   @NgModule({
     declarations: [ ],

     imports: [
     BrowserModule,
     BrowserAnimationsModule,
     AppRoutingModule, ],

      bootstrap: [AppComponent] 
      })
     export class AppModule {}

您想要延迟加载的模块将出现在应用程序路由模块中。 app-routing-module.ts

代码语言:javascript
复制
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';



 const routes: Routes = [
 { path: "", component: LandingComponent },

 {
  path: "homepage",
  loadChildren: "./homepage/homepage.module#HomePageModule"
 },

 ];

 @NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule]
  })
 export class AppRoutingModule { }

加载子模块是我们在想要延迟加载应用程序中的任何模块时使用的属性,#HomePageModule是我想要延迟加载的模块的名称。 要检查模块是否已被延迟加载,当您构建您的角度应用程序时,它将给您这样的块

代码语言:javascript
复制
chunk {homepage.module} homepage.module.chunk.js, 
homepage.module.chunk.js.map () 6.41 kB  [rendered]
chunk {inline} inline.bundle.js, inline.bundle.js.map (inline) 5.83 kB 
[entry] [rendered]
chunk {polyfills} polyfills.bundle.js, polyfills.bundle.js.map 
(polyfills) 215 kB [initial] [rendered]
chunk {styles} styles.bundle.js, styles.bundle.js.map (styles) 177 kB 
[initial] [rendered]
chunk {vendor} vendor.bundle.js, vendor.bundle.js.map (vendor) 5.31 MB 
[initial] [rendered]

它显示您的模块已经成功地被延迟加载。 我希望这能帮到你

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47869250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档