angular - 在 ng build --prod 期间无法读取未定义的属性“moduleType”
问题描述
我已经到了终点,我正在尝试将我的应用程序上传到生产环境。我运行了 ng build --prod 命令,但只收到一条警告消息:
"WARNING in Circular dependency detected:
src\app\app.module.ts -> src\app\app.module.ngfactory.js -> src\app\app.module.ts"
看起来这只是一个警告,但这可能是导致此错误的原因,我不太确定;我在申请中得到的主要错误是:
main-es2015.39c9ec206581527dd6ff.js:1 Uncaught TypeError: Cannot read property 'moduleType' of undefined
这仅在生产版本中,在我的本地它运行完美。我在 IIS 服务器中设置了它。
我读了一篇文章,角度并没有给你所有的错误,运行这个命令,它会给你错误信息。我运行了它,我确实有一些我能够修复的错误。
./node_modules/.bin/ngc
我快到了...任何帮助将不胜感激,如果我可以上传任何其他数据或文件以帮助查明错误,请告诉我。
不确定这是否会有所帮助:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { TaskComponent } from './task/task.component';
import { HeaderComponent } from './header/header.component';
import { FooterComponent } from './footer/footer.component';
//services
import {TaskService} from './task.service';
import {AuthService} from './auth.service';
//material design
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
//reactive forms
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatPasswordStrengthModule } from '@angular-material-extensions/password-strength';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatBadgeModule } from '@angular/material/badge';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatDialogModule } from '@angular/material/dialog';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatGridListModule } from '@angular/material/grid-list';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { MatListModule } from '@angular/material/list';
import { MatMenuModule } from '@angular/material/menu';
import { MatPaginatorModule } from '@angular/material/paginator';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatSelectModule } from '@angular/material/select';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatSortModule } from '@angular/material/sort';
import { MatStepperModule } from '@angular/material/stepper';
import { MatTableModule } from '@angular/material/table';
import { MatTabsModule } from '@angular/material/tabs';
import { MatToolbarModule } from '@angular/material/toolbar';
import { MatTooltipModule } from '@angular/material/tooltip';
import { MatTreeModule } from '@angular/material/tree';
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
import { UpdateTaskComponent } from './update-task/update-task.component';
import { CreateTaskComponent } from './create-task/create-task.component';
import { RegisterComponent } from './register/register.component';
import { LoginComponent } from './login/login.component';
import { UpdateRecipientComponent } from './update-recipient/update-recipient.component';
import { CreateNewUserComponent } from './create-new-user/create-new-user.component';
import { SidenavService } from './sidenav.service';
import { ManageUsersComponent } from './manage-users/manage-users.component';
import { UpdateUserComponent } from './update-user/update-user.component';
import { ConfirmationDialogComponent } from './confirmation-dialog/confirmation-dialog.component';
import { TabDirective } from './ReuseableFunctions/tab-directive';
import { MyReportsGridComponent } from './my-reports-grid/my-reports-grid.component';
import { PageNotFoundComponent } from './page-not-found/page-not-found.component';
import { CdkDetailsRowDirective } from './cdk-details-row.directive';
@NgModule({
declarations: [
AppComponent,
CdkDetailsRowDirective,
TaskComponent,
HeaderComponent,
FooterComponent,
UpdateTaskComponent,
CreateTaskComponent,
RegisterComponent,
LoginComponent,
UpdateRecipientComponent,
CreateNewUserComponent,
ManageUsersComponent,
UpdateUserComponent,
ConfirmationDialogComponent,
TabDirective,
MyReportsGridComponent,
PageNotFoundComponent
],
imports: [
BrowserModule,
AppRoutingModule,
MatButtonModule,
MatCheckboxModule,
MatInputModule,
MatPaginatorModule,
MatProgressSpinnerModule,
MatSortModule,
MatTableModule,
MatCardModule,
MatListModule,
MatToolbarModule,
MatIconModule,
MatSidenavModule,
MatBadgeModule,
MatTooltipModule,
MatSelectModule,
MatDialogModule,
HttpClientModule,
BrowserAnimationsModule,
FormsModule,
ReactiveFormsModule,
MatTreeModule,
MatFormFieldModule,
MatSlideToggleModule,
MatAutocompleteModule,
MatTabsModule,
MatExpansionModule,
MatSnackBarModule,
MatStepperModule,
MatPasswordStrengthModule,
MatGridListModule,
MatProgressBarModule,
MatMenuModule
],
entryComponents: [UpdateTaskComponent, UpdateRecipientComponent, UpdateUserComponent, ConfirmationDialogComponent],
providers: [TaskService,AuthService, SidenavService, HeaderComponent],
bootstrap: [AppComponent]
})
export class AppModule { }
platformBrowserDynamic().bootstrapModule(AppModule);
解决方案
我遇到了类似的问题。我的根本原因是我的 app.module.ts
下面的行导致了循环依赖。删除后,我不再遇到这个问题
platformBrowserDynamic().bootstrapModule(AppModule);
推荐阅读
- java - 将 java 编译为与 C/C++ 兼容的目标文件
- laravel - Laravel 的时间戳有奇怪的返回格式
- python - 根据 ids 和 category 创建 groupby 列
- git - git filter 分支到 git filter repo 转换
- c++ - 在c ++中将数组从函数返回到main
- r - 在grid.arrange上使用rot =旋转标签不起作用
- python - sqlite3中的主键
- java - 使用 Criteria Builder API 在 JPA 中加入自定义查询
- scala - Scala - 回调的返回值
- javascript - 如何向此函数添加鼠标悬停事件?