我在项目中使用的是角度2,当我使用urllib
和ng build
时,没有出现以下错误。这仅在使用prod build ng serve
ng build --prod
在我的项目中使用了以下依赖项。
任何人请尝试解决此问题:
ERROR in Error: Illegal state:
Could not load the summary for directive "component name"
应用模块服务声明:
Node :8.10.0
"dependencies": {
"@angular-devkit/core": "^0.4.3",
"@angular/animations": "4.4.6",
"@angular/common": "4.4.6",
"@angular/compiler": "4.4.6",
"@angular/compiler-cli": "4.4.6",
"@angular/core": "4.4.6",
"@angular/forms": "4.4.6",
"@angular/http": "4.4.6",
"@angular/platform-browser": "4.4.6",
"@angular/platform-browser-dynamic": "4.4.6",
"@angular/platform-server": "4.4.6",
"@angular/router": "4.4.6",
"@ng-bootstrap/ng-bootstrap": "1.0.0-alpha.28",
"angular2-google-chart": "2.3.0",
"angular2-jsonwebtoken": "0.8.1",
"angular2-jwt": "0.2.3",
"angular2-toaster": "3.0.1",
"angular2-uuid": "1.1.1",
"auth0-lock": "11.7.2",
"aws-sdk": "2.182.0",
"chart.js": "2.7.1",
"core-js": "2.5.3",
"ng2-charts": "1.6.0",
"ng2-ckeditor": "1.1.6",
"ng2-google-place-autocomplete": "1.4.2",
"ng2-inline-editor": "0.1.1-alpha.20",
"node-datetime": "1.0.1",
"primeng": "4.3.0",
"pubnub": "4.20.0",
"pubnub-angular2": "1.3.0",
"rxjs": "5.5.6",
"typescript": "2.6.2",
"typings": "^2.1.1",
"zone.js": "0.7.8"
},
"devDependencies": {
"@angular/cli": "1.4.2",
"@angular/compiler-cli": "4.4.6",
"@types/jasmine": "2.5.38",
"@types/node": "6.0.96",
"codelyzer": "2.0.1",
"jasmine-core": "2.5.2",
"jasmine-spec-reporter": "3.2.0",
"karma": "1.4.1",
"karma-chrome-launcher": "2.0.0",
"karma-cli": "1.0.1",
"karma-coverage-istanbul-reporter": "0.2.3",
"karma-jasmine": "1.1.1",
"karma-jasmine-html-reporter": "0.2.2",
"protractor": "5.1.2",
"ts-node": "2.0.0",
"tslint": "4.5.1",
"typescript": "2.6.2"
}
Globalconstantpopup文件的声明和导入:
import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {HttpModule, RequestOptions, Http} from '@angular/http';
import {provideAuth, AuthHttp, AuthConfig} from 'angular2-jwt';
//ThirdParty Modules
import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
import {ChartsModule} from 'ng2-charts';
import {InlineEditorModule} from 'ng2-inline-editor';
import {GoogleChart} from './shared/directive/angular2-google-chart.directive';
import {OverlayPanelModule, GrowlModule, ConfirmDialogModule, ConfirmationService, DialogModule} from 'primeng/primeng';
import {ToasterModule, ToasterConfig} from 'angular2-toaster';
import {PubNubAngular} from 'pubnub-angular2';
import {ChartModule} from 'primeng/primeng';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations'
import {CalendarModule} from 'primeng/primeng';
import {AutoCompleteModule} from 'primeng/primeng';
import {GooglePlaceModule} from 'ng2-google-place-autocomplete';
import {DataTableModule, SharedModule, PaginatorModule, InputMaskModule, ChipsModule, MultiSelectModule, PickListModule} from 'primeng/primeng';
//Components
import {AppComponent} from './app.component';
import {RegistrationComponent} from './registration/registration.component';
/*import { MywebsiteHeaderComponent } from './dashboard/mywebsite-header/mywebsite-header.component';*/
import {MyReportsComponent} from './my-reports/my-reports.component';
import {MyWebsitesComponent} from './my-websites/my-websites.component';
import {WelcomeMessageComponent} from './welcome-message/welcome-message.component';
import {ViewProfileComponent} from './view-profile/view-profile.component';
import {MyHomeComponent} from './my-home/my-home.component';
import {PrivacyComponent} from './static/privacy/privacy.component';
import {AboutComponent} from './static/about/about.component';
import {SelectWebsiteTypeComponent} from './select-website-type/select-website-type.component';
import {ManageUsersComponent} from './manage-users/manage-users.component';
//Modules
import {RoutingModule} from './routing/routing.module';
import {VerifyEmailComponent} from './verify-email/verify-email.component';
import {VerifyMailSendComponent} from './verify-mail-send/verify-mail-send.component';
import {HomeComponent} from './home/home.component';
import {AdminConsoleComponent} from './admin/admin-console/admin-console.component';
import {BusinessProfileModule} from './dashboard/business-profile/business-profile.module';
import {BrandingModule} from './dashboard/branding/branding.module';
import {PaymentsModule} from './dashboard/payments/payments.module';
import {StripePaymentModule} from './stripe-payment/stripe-payment.module';
import {TrackingCodeModule} from './dashboard/tracking-code/tracking-code.module';
import {InviteMemberModule} from './dashboard/invite-member/invite-member.module';
import {SiteDesignModule} from './dashboard/site-design/site-design.module';
import {QuickwebsiteModule} from './dashboard/quickwebsite/quickwebsite.module';
import {ManageUsersModule} from "./manage-users/manage-users.module";
import {OrganizationChartModule} from 'primeng/primeng';
//import { PreviewPublishModule } from './dashboard/preview-publish/preview-publish.module';
//Services
import {Auth} from './services/auth';
import {AuthGuard} from './services/auth-guard.service';
import {AdminService} from './admin/admin-console/admin.service';
import {GetUserService} from './services/get-user.service';
import {LoggedinGuard} from './loggedin.guard';
import {MyOrgComponent} from './my-org/my-org.component';
import {FirstuserGuard} from './routing/guards/firstuser.guard';
//Directives
import {RequestActivationComponent} from './admin/request-activation/request-activation.component';
import {DataAvailabilityCheckComponent} from './admin/data-availability-check/data-availability-check.component';
import {ApiRequestSuccessComponent} from './api-request-success/api-request-success.component';
import {KeyPersonInfoCollectionComponent} from './key-person-info-collection/key-person-info-collection.component';
import {ThirdpartyInfoComponent} from './admin/thirdparty-info/thirdparty-info.component';
import {GlobalConstantsComponent} from './admin/global-constants/global-constants.component';
import {GlobalConstantsPopupComponent} from './admin/global-constants-popup/global-constants-popup.component';
@NgModule({
declarations: [
AppComponent,
RegistrationComponent,
VerifyEmailComponent,
VerifyMailSendComponent,
HomeComponent,
AdminConsoleComponent,
MyHomeComponent,
MyReportsComponent,
WelcomeMessageComponent,
ViewProfileComponent,
MyOrgComponent,
MyWebsitesComponent,
GoogleChart,
PrivacyComponent,
AboutComponent,
SelectWebsiteTypeComponent,
RequestActivationComponent,
DataAvailabilityCheckComponent,
ApiRequestSuccessComponent,
KeyPersonInfoCollectionComponent,
ThirdpartyInfoComponent,
GlobalConstantsComponent,
GlobalConstantsPopupComponent,
],
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule,
HttpModule,
RoutingModule,
NgbModule,
BusinessProfileModule,
BrandingModule,
PaymentsModule,
StripePaymentModule,
TrackingCodeModule,
InviteMemberModule,
SiteDesignModule,
ChartsModule,
InlineEditorModule,
OverlayPanelModule,
ToasterModule,
GrowlModule,
ChartModule,
BrowserAnimationsModule,
CalendarModule,
ConfirmDialogModule,
AutoCompleteModule,
QuickwebsiteModule,
DialogModule,
GooglePlaceModule,
DataTableModule,
SharedModule,
PaginatorModule,
InputMaskModule,
ChipsModule,
OrganizationChartModule,
ManageUsersModule,
MultiSelectModule,
PickListModule
],
entryComponents: [ HomeComponent, RegistrationComponent, WelcomeMessageComponent, SelectWebsiteTypeComponent, ManageUsersComponent, ApiRequestSuccessComponent, KeyPersonInfoCollectionComponent, GlobalConstantsPopupComponent],
providers: [
AdminService,
Auth,
AuthGuard,
GetUserService,
LoggedinGuard,
FirstuserGuard,
PubNubAngular,
],
bootstrap: [AppComponent]
})
export class AppModule {}
答案 0 :(得分:1)
问题是因为您的组件上有一个@NgModule
注释。不支持此功能(如here所示)
尝试从组件中删除这些行
@NgModule({
imports: [
InlineEditorModule,
]
})
然后从InlineEditorModule
导入AppModule
我认为认为它在开发人员模式下有效,但在使用--prod
标志进行构建时不起作用的原因是,生产buil对代码进行了一些优化(buildOptimizer
参数angular.json
),可能会剥离您的Component
注释。
答案 1 :(得分:0)
通常,这意味着未将组件添加到声明部分
{
imports: [],
providers: [],
declarations: ["component name"]
}
答案 2 :(得分:0)
@
函数是修饰符,例如@Component
和@NgModule
。这些装饰器是类装饰器。 NgModule
“定义”一个ngModule,因此通过将@NgModule
放在类声明之前,可以将其定义为ngModule。
@Component
“定义”一个组件。
GlobalConstantsPopupComponent
类被“定义”为两者,并且angular不满意。
将@NgModule
移动到GlobalConstantsPopupComponent
类下面,并在其下添加另一个类,例如GlobalConstantsPopupModule
。将该GlobalConstantsPopupModule
类导入app.module.ts中的@NgModule
或
将InlineEditorModule
移动到app.module.ts中,就像David提到的那样。