Angular :ng build --prod "Cannot determine the module for class. Add class to the NgModule to fix it"

标签 angular angular2-pipe angular2-providers

我已将分页逻辑放在一个单独的模块中,并将其导入到 AppModule 中。下面是我的分页模块和 AppModule 的代码。

分页实用程序模块:

import { NgModule, ModuleWithProviders, Injector } from '@angular/core';
import { CommonModule } from '@angular/common';
import { OrderByPipe } from './order-by.pipe';
import { FilterPipe } from './filter.pipe';
import { SortByDirective } from './sort-by.directive';
import { PaginationComponent } from './pagination/pagination.component';
import { ServiceLocator } from './service-locator';

@NgModule({
  imports: [
    CommonModule
  ],
  declarations: [
    SortByDirective,
    PaginationComponent
  ],
  exports: [
    SortByDirective,
    PaginationComponent
  ]
})
export class PagingUtilitiesModule {
  constructor(private injector: Injector) {
    ServiceLocator.injector = this.injector;
  }

  static forRoot(): ModuleWithProviders {
    return {
      ngModule: PagingUtilitiesModule,
      providers: [
        FilterPipe,
        OrderByPipe
      ]
    }
  }
}

应用模块:

import { NgModule } from '@angular/core';
import { Location } from '@angular/common';
import { BrowserModule } from '@angular/platform-browser';
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';

import { MultiselectDropdownModule } from 'angular-2-dropdown-multiselect';
import { FileUploadModule } from 'ng2-file-upload';
import { SlimLoadingBarModule } from 'ng2-slim-loading-bar';

import { AppRoutingModule } from './app-routing/app-routing.module';
import { PagingUtilitiesModule } from './shared/paging-utilities/paging-utilities.module';

import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import { LoginComponent } from './login/login.component';
import { AgreementComponent } from './agreement/agreement.component';
import { DatepickerDirective } from './shared/datepicker.directive';
import { HeaderComponent } from './header/header.component';
import { CreatePriceListComponent } from './create-price-list/create-price-list.component';
import { ExcelReaderService } from './shared/excel-reader.service';

import { AgreementDetailsService } from './agreement/agreement-details.service';
import { LoaderInterceptorService } from './shared/loader-interceptor.service';
import { ContractComponent } from './contract/contract.component';
import { EditableControlComponent } from './shared/editable-control/editable-control.component';
import { SearchService } from './home/search.service';
import { FilesComponent } from './agreement/files/files.component';
import { SearchComponent } from './home/search/search.component';

@NgModule({
    imports: [
        BrowserModule,
        FormsModule,
        ReactiveFormsModule,
        HttpClientModule,
        MultiselectDropdownModule,
        FileUploadModule,
        SlimLoadingBarModule.forRoot(),
        AppRoutingModule,
        PagingUtilitiesModule.forRoot()
    ],
    declarations: [
        AppComponent,
        HomeComponent,
        LoginComponent,
        AgreementComponent,
        DatepickerDirective,
        HeaderComponent,
        CreatePriceListComponent,
        ContractComponent,
        EditableControlComponent,
        FilesComponent,
        SearchComponent
    ],
    providers: [
        {
            provide: HTTP_INTERCEPTORS,
            useClass: LoaderInterceptorService,
            multi: true
        },
        ExcelReaderService,
        AgreementDetailsService,
        SearchService,
        Location
    ],
    bootstrap: [AppComponent]
})

export class AppModule { }

如您所见,OrderByPipeFilterPipe 是管道,我在我的 PagingUtilitiesModule 中提供它们,我正在导入我的 PagingUtilitiesModule.forRoot()AppModule。它在文件更改时发生的正常构建上运行良好。但是当我执行 ng build --prod 时,它显示了这个错误

错误错误:无法确定 D:/Projects/AMSSFrontEnd/src/app/shared/paging-utilities/order-by.pipe.ts 中类 OrderByPipe 的模块!将 OrderByPipe 添加到 NgModule 以修复它。 无法确定 D:/Projects/AMSSFrontEnd/src/app/shared/paging-utilities/filter.pipe.ts 中类 FilterPipe 的模块!将 FilterPipe 添加到 NgModule 以修复它。

请帮我解决这个问题。

最佳答案

您可以尝试将 FilterPipeOrderByPipe 管道添加到 export[] 属性中,如下所示:

exports: [
    FilterPipe, 
    OrderByPipe,
    SortByDirective,
    PaginationComponent
]

希望对您有所帮助!

关于 Angular :ng build --prod "Cannot determine the module for class. Add class to the NgModule to fix it",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46882983/

相关文章:

angular - 如果值是字符串而不是 int 或 float,如何告诉 angular (2) 货币管道按原样显示

angular - Angular 2中的动态管道

unit-testing - 带有模拟的 Angular 2 TestBed

Angular 2 - 在每个 http 请求中附加 withCredentials = true

用于长时间运行流程的 Spring SSE

javascript - 下载本地文件

angular - 何时使用 Angular 指令、组件和模块

javascript - 在 Angular2/Javascript 中初始化变量对象

angular - 是否有内置管道仅显示数组中的部分条目