简体   繁体   English

编译器失败 - 找不到“AppModule”的 NgModule 元数据中的错误

[英]Compiler fails - ERROR in No NgModule metadata found for 'AppModule'

Compile fails with this error.编译失败并出现此错误。 I have looked through all the posts with similar titles and not found anything helpful yet.我已经浏览了所有标题相似的帖子,但还没有发现任何有用的东西。 Angular 7. I was trying to update some dependencies to resolve prod vulnerabilities, the change list for this was moving angular-devkit/build-angular to dev dependencies, removing abandoned and unused packages, adding ngx-toastr 10, upgrading jasmine-core from 3.3 to 3.8. Angular 7. 我试图更新一些依赖项来解决生产漏洞,这个更改列表是将angular-devkit/build-angular到 dev 依赖项,删除废弃和未使用的包,添加ngx-toastr 10,从升级jasmine-core 3.3 到 3.8。

I have deleted, cleared cache, and reinstalled all node packages and then tried specifically doing that to angular/cli (7.1.1) and webpack (4.12.0).我已经删除、清除缓存并重新安装所有节点包,然后尝试专门对 angular/cli (7.1.1) 和 webpack (4.12.0) 执行此操作。 Edited+saved a random ts file.编辑+保存了一个随机的 ts 文件。 Added app/app.module.ts specifically to tsconfig.app.json's files param and include param.app/app.module.ts专门添加到 tsconfig.app.json 的files参数和include参数。 Added strictMetadataEmit:false to tsconfig.json and tsconfig.app.json compilerOptions (unknown compiler param error).向 tsconfig.json 和 tsconfig.app.json compilerOptions 添加了strictMetadataEmit:false (未知编译器参数错误)。

tsconfig.json配置文件

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "baseUrl": "./src",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "types": [
      "jasmine"
    ],
    "lib": [
      "es2017",
      "dom"
    ],
    "paths": {
      "@app/*": [ "app/*" ],
      "@env/*": [ "environments/*" ]
    }
  },
  "include": [
    "src/**/*"
  ]
}

tsconfig.app.json tsconfig.app.json

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "module": "es2015",
    "baseUrl": "",
    "types": []
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ],
  "include": [
    "./**/*"
  ]
}

package.json包.json

{
  "name": "pds.ui",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "inc-ram": "set NODE_OPTIONS=--max-old-space-size=12000",
    "build-prod": "npm run-script inc-ram && ng build --prod --source-map false --aot"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^7.1.3",
    "@angular/common": "^7.1.3",
    "@angular/compiler": "^7.1.3",
    "@angular/core": "^7.1.3",
    "@angular/forms": "^7.1.3",
    "@angular/http": "^7.1.3",
    "@angular/platform-browser": "^7.1.3",
    "@angular/platform-browser-dynamic": "^7.1.3",
    "@angular/router": "^7.1.3",
    "@progress/kendo-angular-buttons": "^4.1.1",
    "@progress/kendo-angular-dateinputs": "^3.5.2",
    "@progress/kendo-angular-dialog": "^3.1.2",
    "@progress/kendo-angular-dropdowns": "^3.0.2",
    "@progress/kendo-angular-excel-export": "^2.1.0",
    "@progress/kendo-angular-grid": "^3.5.0",
    "@progress/kendo-angular-inputs": "^3.1.3",
    "@progress/kendo-angular-intl": "^1.3.1",
    "@progress/kendo-angular-l10n": "^1.1.0",
    "@progress/kendo-angular-layout": "^3.1.1",
    "@progress/kendo-angular-pdf-export": "^1.0.4",
    "@progress/kendo-angular-upload": "^4.1.2",
    "@progress/kendo-data-query": "^1.2.0",
    "@progress/kendo-drawing": "^1.5.5",
    "@progress/kendo-theme-bootstrap": "^2.13.4",
    "@progress/kendo-theme-default": "^2.53.1",
    "angular-calendar": "^0.27.15",
    "angular2-draggable": "^2.1.1",
    "bootstrap": "^4.0.0",
    "classlist.js": "^1.1.20150312",
    "core-js": "^2.5.3",
    "date-fns": "^1.30.1",
    "font-awesome": "^4.7.0",
    "guid-typescript": "^1.0.9",
    "jasmine-tfs-reporter": "^1.0.2",
    "json2typescript": "1.0.6",
    "moment": "^2.20.1",
    "ngx-bootstrap": "^3.0.0",
    "ngx-permissions": "^6.0.1",
    "ngx-quill": "^5.2.0",
    "ngx-toastr": "^10.1.0",
    "node-sass": "^4.7.2",
    "npm": "^6.4.1",
    "quill": "^1.3.7",
    "rxjs": "^6.2.1",
    "rxjs-compat": "^6.2.1",
    "ts-helpers": "^1.1.2",
    "typescript": "3.2.4",
    "web-animations-js": "^2.3.1",
    "zone.js": "^0.8.20"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.11.4",
    "@angular-devkit/build-optimizer": "^0.11.3",
    "@angular/cli": "^7.1.1",
    "@angular/compiler-cli": "^7.1.3",
    "@types/applicationinsights-js": "1.0.9",
    "@types/jasmine": "3.3.1",
    "@types/node": "^10.3.2",
    "codelyzer": "^4.1.0",
    "html-webpack-plugin": "^3.2.0",
    "jasmine-core": "~3.8.0",
    "jasmine-spec-reporter": "^4.2.1",
    "karma": "~3.1.3",
    "karma-chrome-launcher": "~2.2.0",
    "karma-cli": "~2.0.0",
    "karma-coverage-istanbul-reporter": "^2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.1.0",
    "protractor": "^5.4.1",
    "ts-node": "~7.0.1",
    "tslint": "~5.11.0",
    "webpack": "^4.12.0"
  },
  "engines": {
    "node": ">= 8.6.0",
    "npm": ">= 5.4.2"
  }
}

app.module.ts app.module.ts

// Angular
import { NgModule, OnInit, APP_INITIALIZER } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { BrowserModule, Title } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { Injector } from '@angular/core';

// Kendo & 3rd Party
import { InputsModule } from '@progress/kendo-angular-inputs';
import { ModalModule } from 'ngx-bootstrap';
import { UploadModule } from '@progress/kendo-angular-upload';

import { CoreModule, ConfigService } from '@app/core';
import { SharedModule } from '@app/shared';


// App
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app.routing';
import { HeaderComponent } from './header/header.component';
import { AdminModule } from './admin/admin.module';
import { MasterProjectModule } from './master-project/master-project.module';
import { ContractModule } from './contract/contract.module';
import { FAQComponent } from './shared/faq/faq.component';
import { DashboardModule } from './dashboard/dashboard.module';
import { AngularDraggableModule } from 'angular2-draggable';

// Services
import { RepositoryService } from '@app/shared/repository.service';
import { ServiceLocator } from '@app/shared/service-locator';
import { EmailService } from '@app/shared/email.service';
import { CanDeactivateGuardService } from '@app/shared/candeactivate-guard.service';
import { NavigationEnd, Router, ActivatedRoute } from '@angular/router';
import { MasterProjectRoutingModule } from '@app/master-project/master-project-routing.module';
import { ContractRoutingModule } from '@app/contract/contract-routing.module';
import { DashboardRoutingModule } from '@app/dashboard/dashboard-routing.module';
import { DialogModule } from '@progress/kendo-angular-dialog';
import { NgxPermissionsModule } from 'ngx-permissions';
import { NgxPermissionsService } from 'ngx-permissions';
import { Role } from '@app/core/role';
import { NgxRolesService } from 'ngx-permissions';
import { HttpClientModule, HttpClient } from '@angular/common/http';
import { AcknowledgementsComponent } from './shared/acknowledgements/acknowledgements';
import { ToastrModule } from 'ngx-toastr';
import { ProgressBarComponent } from './shared/ProgressBar/ProgressBar';
import { LoadingBarService } from './shared/LoadingBarService/LoadingBarService';

export function initConfig(config: ConfigService): Function {
  return () => config.getAll();
}

@NgModule({
  imports: [
    FormsModule,
    BrowserModule,
    HttpClientModule,
    AppRoutingModule,
    BrowserAnimationsModule,
    DashboardModule,
    AngularDraggableModule,
    DashboardRoutingModule,
    AdminModule,
    MasterProjectRoutingModule,
    MasterProjectModule,
    ContractRoutingModule,
    ContractModule,
    InputsModule,
    DialogModule,
    UploadModule,
    ToastrModule.forRoot(),
    NgxPermissionsModule.forRoot(),

    // App Core & Shared
    CoreModule,
    SharedModule,
    ModalModule.forRoot()
  ],
  exports: [SharedModule],
  declarations: [
    AppComponent,
    ProgressBarComponent,
    HeaderComponent,
    FAQComponent,
    AcknowledgementsComponent
  ],
  providers: [
    Title,
    LoadingBarService,
    EmailService,
    CanDeactivateGuardService,
    RepositoryService,
    ServiceLocator,
    ConfigService,
    NgxRolesService,
    NgxPermissionsService,
    {
      provide: APP_INITIALIZER,
      useFactory: (http: HttpClient, configService: ConfigService, rs: NgxRolesService, ps: NgxPermissionsService ) => function() {
        return configService.getAll().then((config) => {
          return http.get(`${config.BaseApiURL}GetMyRoles`,
            { withCredentials: true }).do((roles: any) => {
            for (const role of roles.value as Array<Role>) {
              rs.addRole(role.Name, role.Permissions);
              ps.addPermission(role.Permissions);
            }
          }).toPromise()
        });
      },
      deps: [HttpClient, ConfigService, NgxRolesService, NgxPermissionsService],
      multi: true
    }
  ],
  bootstrap: [
    AppComponent]
})
export class AppModule implements OnInit {
  constructor(
    readonly router: Router,
    readonly activatedRoute: ActivatedRoute,
    readonly titleService: Title,
    readonly loadingBarService: LoadingBarService,
    private injector: Injector) {    // Create global Service Injector.
    ServiceLocator.injector = this.injector;
  }
}

main.ts主文件

import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from '@app/app.module';
import { environment } from '@env/environment';

if (environment.production) {
  enableProdMode(); 
}

platformBrowserDynamic().bootstrapModule(AppModule);

I reverted to a previous commit and re-applied the updates while ensuring it still built between each update.我恢复到以前的提交并重新应用更新,同时确保它仍然在每次更新之间构建。 Didn't see the error again.没有再次看到错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 找不到“ AppModule”的NgModule元数据中的错误。 和webpack:编译失败 - ERROR in No NgModule metadata found for 'AppModule'. and webpack: Failed to compile 重新安装node_modules后找不到“ AppModule”的NgModule元数据 - No NgModule metadata found for 'AppModule' after reinstalling node_modules 错误:错误:找不到&#39;AppComponent&#39;的NgModule元数据 - Error: Error: No NgModule metadata found for 'AppComponent' 错误:在Angular2中找不到“未定义”的NgModule元数据 - Error: No NgModule metadata found for 'undefined' in Angular2 角度未捕获的错误:找不到“ kc”的NgModule元数据 - Angular Uncaught Error: No NgModule metadata found for 'kc' AngularUniversal 预渲染错误:UnhandledPromiseRejectionWarning:错误:找不到“类{}”的 NgModule 元数据 - AngularUniversal prerendering error: UnhandledPromiseRejectionWarning: Error: No NgModule metadata found for 'class{}' AppModule中的ERROR不是NgModule,typescript 2.3.2,Angular 4 - ERROR in AppModule is not an NgModule, typescript 2.3.2, Angular 4 未被捕获(承诺):错误:找不到“ [对象对象]”的NgModule元数据 - Uncaught (in promise): Error: No NgModule metadata found for '[object Object]' 构建 Angular 应用程序时,获取“未找到“类{}”错误的“未找到 NgModule 元数据” - Getting `No NgModule metadata found for 'class{}'` error when building angular application 将 AngularJS 升级到 Angular,AppModule 被引导,但它没有声明“@NgModule.bootstrap”错误 - Upgrading AngularJS to Angular, AppModule was bootstrapped, but it does not declare "@NgModule.bootstrap" Error
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM