3
votes

Ctor n'est pas un constructeur

J'essaie de créer la version de production de mon application Web développée en angular7 et la compilation fonctionne bien. Mais lorsque j'essaye d'accéder à l'application, une erreur est générée dans la console:

import { NgbDateCustomParserFormatter } from './customformatters/NgbDateCustomParserFormatter';
import { WorkshiftComponent } from './protectedpages/workshift/workshift.component';
import { BrowserModule } from '@angular/platform-browser';
import { LOCALE_ID, NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { IntegerDirective } from './customdirectives/integerdirective';
import { FormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { IndexComponent } from './publicpages/index/index.component';
import { RegisterComponent } from './publicpages/register/register.component';
import { ReactiveFormsModule } from '@angular/forms';
import { ActivateComponent } from './protectedpages/activate/activate.component';
import { LoginComponent } from './publicpages/login/login.component';
import { ConfigureirComponent } from './protectedpages/configureir/configureir.component';
import { ServicesComponent } from './protectedpages/services/services.component';
import { ConfigureuserComponent } from './protectedpages/configureuser/configureuser.component';
import { NavmenuComponent } from './protectedpages/navmenu/navmenu.component';
import { NewServiceComponent } from './protectedpages/newservice/newservice.component';
import { TildeStringPipe } from './custompipes/tildestring.pipe';
import { ServiceComponent } from './protectedpages/service/service.component';
import { NgbModule, NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';
import { UsersComponent } from './protectedpages/users/users.component';
import { NewuserComponent } from './protectedpages/newuser/newuser.component';
import { ChangePasswordComponent } from './protectedpages/changepassword/changepassword.component';
import { CommaStringPipe } from './custompipes/commastring.pipe';
import { UserComponent } from './protectedpages/user/user.component';
import { VehiclesComponent } from './protectedpages/vehicles/vehicles.component';
import { VehicleComponent } from './protectedpages/vehicle/vehicle.component';
import { NewVehicleComponent } from './protectedpages/newvehicle/newvehicle.component';
import { NewWorkshiftComponent } from './protectedpages/newworkshift/newworkshift.component';
import { WorkshiftsComponent } from './protectedpages/workshifts/workshifts.component';
import { PublicnavmenuComponent } from './publicpages/publicnavmenu/publicnavmenu.component';
import { WhatisComponent } from './publicpages/whatis/whatis.component';
import { WhyComponent } from './publicpages/why/why.component';
import { PricesComponent } from './publicpages/prices/prices.component';
import { FaqComponent } from './publicpages/faq/faq.component';
import { LogoutComponent } from './publicpages/logout/logout.component';
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
import { IntlTelInputModule } from 'angular-intl-tel-input';

// Locale IT
import { registerLocaleData } from '@angular/common';
import localeIt from '@angular/common/locales/it';

registerLocaleData(localeIt, 'it');

@NgModule({
  declarations: [
    AppComponent,
    IndexComponent,
    RegisterComponent,
    ActivateComponent,
    LoginComponent,
    ConfigureirComponent,
    ServicesComponent,
    ConfigureuserComponent,
    NavmenuComponent,
    NewServiceComponent,
    TildeStringPipe,
    IntegerDirective,
    ServiceComponent,
    UsersComponent,
    NewuserComponent,
    ChangePasswordComponent,
    CommaStringPipe,
    UserComponent,
    VehiclesComponent,
    VehicleComponent,
    NewVehicleComponent,
    NewWorkshiftComponent,
    WorkshiftsComponent,
    WorkshiftComponent,
    PublicnavmenuComponent,
    WhatisComponent,
    WhyComponent,
    PricesComponent,
    FaqComponent,
    LogoutComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    FormsModule,
    HttpClientModule,
    BrowserAnimationsModule,
    ReactiveFormsModule,
    NgbModule,
    BsDropdownModule.forRoot(),
    IntlTelInputModule
  ],
  providers: [{ provide: LOCALE_ID, useValue: 'it'}, {provide: NgbDateParserFormatter, useValue: NgbDateCustomParserFormatter}],
  bootstrap: [AppComponent]
})
export class AppModule { }

Comment puis-je résoudre ce problème? Je ne comprends pas quelle bibliothèque ne va pas. Ceci est mon package.json

{
  "name": "cop-ang",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^7.1.4",
    "@angular/common": "^7.1.4",
    "@angular/compiler": "^7.1.4",
    "@angular/core": "^7.1.4",
    "@angular/forms": "^7.1.4",
    "@angular/http": "^7.1.4",
    "@angular/platform-browser": "^7.1.4",
    "@angular/platform-browser-dynamic": "^7.1.4",
    "@angular/router": "^7.1.4",
    "@ng-bootstrap/ng-bootstrap": "^4.0.1",
    "angular-intl-tel-input": "0.0.9",
    "bootstrap": "^4.2.1",
    "core-js": "^2.6.1",
    "google-libphonenumber": "^3.2.2",
    "intl-tel-input": "^14.0.6",
    "jquery": "^3.3.1",
    "ngx-bootstrap": "^3.1.4",
    "npm-check-updates": "^2.15.0",
    "popper.js": "^1.14.6",
    "rxjs": "^6.3.3",
    "ts-md5": "^1.2.4",
    "zone.js": "^0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.11.4",
    "@angular/cli": "^7.1.4",
    "@angular/compiler-cli": "^7.1.4",
    "@angular/language-service": "^7.1.4",
    "@types/jasmine": "^3.3.5",
    "@types/jasminewd2": "^2.0.6",
    "@types/jquery": "^3.3.29",
    "@types/node": "^10.12.18",
    "angular-ide": "^0.9.55",
    "codelyzer": "~4.5.0",
    "jasmine-core": "~3.3.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "^3.1.4",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "^2.0.4",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "^5.4.2",
    "ts-node": "~7.0.1",
    "tslint": "~5.12.0",
    "typescript": "3.1.6"
  }
}

Et voici le app.module.ts:

Uncaught TypeError: ctor is not a constructor
    at _createClass (main.07add232d9f568bb2d7a.js:33609)
    at _createProviderInstance (main.07add232d9f568bb2d7a.js:33583)
    at initNgModule (main.07add232d9f568bb2d7a.js:33514)
    at new NgModuleRef_ (main.07add232d9f568bb2d7a.js:34243)
    at Object.createNgModuleRef (main.07add232d9f568bb2d7a.js:34232)
    at NgModuleFactory_.push../node_modules/@angular/core/fesm5/core.js.NgModuleFactory_.create (main.07add232d9f568bb2d7a.js:36793)
    at main.07add232d9f568bb2d7a.js:30443
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (polyfills.a8a979dc29215b620775.js:396)
    at Object.onInvoke (main.07add232d9f568bb2d7a.js:29978)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (polyfills.a8a979dc29215b620775.js:395)


7 commentaires

pouvez-vous ajouter votre app.module.ts ?


modifié la question d'origine, en ajoutant le module app.m


Pourriez-vous simplement changer le tableau fournisseurs ici en fournisseurs: [{provide: LOCALE_ID, useValue: 'it'}], et re-tester?


Essayé mais rien ne change :(


Supprimer les fournisseurs de nouveau test?


Essayé sans chance


Existe-t-il un moyen de comprendre quelle bibliothèque est à l'origine du problème?


6 Réponses :


0
votes

J'ai pu me débarrasser de ce problème en supprimant le répertoire / node_modules et en exécutant une npm install après.


1 commentaires

Essayé sans succès



0
votes

J'ai eu un problème similaire juste après la mise à niveau vers ng7.
Pour moi, le problème était les importations rxjs qui ont été modifiées par le processus de mise à niveau.
J'ai donc changé les importations comme «../../node_modules/rxjs/» en «rxjs».


0 commentaires

4
votes

Cela peut être une erreur dans les déclarations des fournisseurs.

Lorsque vous essayez de vous moquer d'un fournisseur et d'utiliser useClass au lieu de useValue, l'erreur "TypeError: ctor is not a constructeur" est déclenchée.

Voici un exemple qui déclenche l'erreur:

providers: [{provide: OrderService, useValue: new OrderServiceMock()}]

La déclaration correcte est:

providers: [{provide: OrderService, useClass: new OrderServiceMock()}]

veuillez vous référer ici: https://stackoverflow.com/a/44944645


0 commentaires

16
votes

En cas de react-native , il suffit de redémarrer le serveur de métro pour vous aider.


0 commentaires

0
votes

Vous avez cette erreur en essayant d'accéder au magasin redux dans componentDidUpdate sans vérifier prevProps . Vérifiez toujours prevProps


0 commentaires

0
votes

a éliminé cette erreur simplement en désinstallant et en réinstallant l'application


0 commentaires