Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ionic v3 : erreur lors du build

"Encountered undefined provider" sur Ionic 3

    17 août 2019 à 14:46:34

    Bonjour,

    sur ionic 3, j'ai l'erreur suivante lorsque j'exécute ionic cordova build android --prod --release --verbose  :

    [14:08:11]  build prod started ...
    [14:08:11]  clean started ...
    [14:08:11]  clean finished in 1 ms
    [14:08:11]  copy started ...
    [14:08:11]  deeplinks started ...
    [14:08:11]  deeplinks finished in 54 ms
    [14:08:11]  ngc started ...
    [14:08:14]  typescript error
                Encountered undefined provider! Usually this means you have a circular dependencies (might be caused by
                using 'barrel' index.ts files. debug = provider for the NgModule 'AppModule in
                C:/Users/clami/Documents/IONIC/APPLIS/Docks/dfidelite/src/app/app.module.ts'
    
    Error: The Angular AoT build failed. See the issues above
        at C:\Users\clami\Documents\IONIC\APPLIS\Docks\dfidelite\node_modules\@ionic\app-scripts\dist\aot\aot-compiler.js:237:55
        at step (C:\Users\clami\Documents\IONIC\APPLIS\Docks\dfidelite\node_modules\@ionic\app-scripts\dist\aot\aot-compiler.js:32:23)
        at Object.next (C:\Users\clami\Documents\IONIC\APPLIS\Docks\dfidelite\node_modules\@ionic\app-scripts\dist\aot\aot-compiler.js:13:53)
        at fulfilled (C:\Users\clami\Documents\IONIC\APPLIS\Docks\dfidelite\node_modules\@ionic\app-scripts\dist\aot\aot-compiler.js:4:58)
    [DEBUG] Error: The Angular AoT build failed. See the issues above
                 at C:\Users\clami\Documents\IONIC\APPLIS\Docks\dfidelite\node_modules\@ionic\app-scripts\dist\aot\aot-compiler.js:237:55
                 at step (C:\Users\clami\Documents\IONIC\APPLIS\Docks\dfidelite\node_modules\@ionic\app-scripts\dist\aot\aot-compiler.js:32:23)
                 at Object.next (C:\Users\clami\Documents\IONIC\APPLIS\Docks\dfidelite\node_modules\@ionic\app-scripts\dist\aot\aot-compiler.js:13:53)
                 at fulfilled (C:\Users\clami\Documents\IONIC\APPLIS\Docks\dfidelite\node_modules\@ionic\app-scripts\dist\aot\aot-compiler.js:4:58)



    Mon fichier app.module.ts :

    import { NgModule, ErrorHandler } from '@angular/core';
    import { BrowserModule } from '@angular/platform-browser';
    import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
    import { MyApp } from './app.component';
    import { HttpModule } from '@angular/http';
    
    import { BoutiquesPage } from '../pages/boutiques/boutiques';
    import { HomePage } from '../pages/home/home';
    import { OffresPage } from '../pages/offres/offres';
    import { BoutiquedetailPage } from '../pages/boutiquedetail/boutiquedetail'
    import { QrcodePage } from '../pages/qrcode/qrcode';
    import { LoginPage } from '../pages/login/login';
    import { HomeconnexionPage } from '../pages/homeconnexion/homeconnexion';
    import { InscriptionPage } from '../pages/inscription/inscription';
    import { ForgotPage } from '../pages/forgot/forgot';
    import { UserPage } from '../pages/user/user';
    import { UserinfosPage } from '../pages/userinfos/userinfos';
    import { UserpasswordPage } from '../pages/userpassword/userpassword';
    import { MentionsPage } from '../pages/mentions/mentions';
    
    import { StatusBar } from '@ionic-native/status-bar';
    import { BarcodeScanner } from '@ionic-native/barcode-scanner';
    import { SplashScreen } from '@ionic-native/splash-screen';
    import { DataserviceProvider } from '../providers/dataservice/dataservice';
    import { EmailComposer } from '@ionic-native/email-composer';
    import { IonicStorageModule } from '@ionic/storage';
    import { CallNumber } from '@ionic-native/call-number';
    import { InAppBrowser } from '@ionic-native/in-app-browser';
    
    import { BoutiqueCardComponent } from '../components/boutique-card/boutique-card';
    
    @NgModule({
      declarations: [
        MyApp,
        BoutiquesPage,
        HomePage,
        OffresPage,
        BoutiquedetailPage,
        QrcodePage,
        LoginPage,
        HomeconnexionPage,
        InscriptionPage,
        ForgotPage,
        UserPage,
        UserinfosPage,
        UserpasswordPage,
        MentionsPage,
        BoutiqueCardComponent
      ],
      imports: [
        BrowserModule,
        IonicModule.forRoot(MyApp),
        IonicStorageModule.forRoot(),
        HttpModule
      ],
      bootstrap: [IonicApp],
      entryComponents: [
        MyApp,
        BoutiquesPage,
        HomePage,
        OffresPage,
        BoutiquedetailPage,
        QrcodePage,
        LoginPage,
        HomeconnexionPage,
        InscriptionPage,
        ForgotPage,
        UserPage,
        UserinfosPage,
        UserpasswordPage,
        MentionsPage,
        BoutiqueCardComponent
      ],
      providers: [
        StatusBar,
        SplashScreen,
        BarcodeScanner,
        {provide: ErrorHandler, useClass: IonicErrorHandler},
        DataserviceProvider,
        EmailComposer,
        CallNumber,
        InAppBrowser,
        Storage
      ]
    })
    export class AppModule {}



    Et pour finir le seul provider que j'ai développé pour mon appli : DataserviceProvider

    import { Injectable } from '@angular/core';
    import { Http } from '@angular/http';
    import 'rxjs/add/operator/map';
    
    /*
      Generated class for the DataserviceProvider provider.
    
      See https://angular.io/guide/dependency-injection for more info on providers
      and Angular DI.
    */
    @Injectable()
    export class DataserviceProvider {
    
      private baseUrl = "https://www.mon-url.com/";
    
      constructor(private http: Http) {
       
      }
    
      retrieveData(){
        return this.http.get(this.baseUrl+"API/boutiques")
       }
    
       retrieveDataRestaurants(){
        return this.http.get(this.baseUrl+"API/restaurants")
       }
    
       retrieveDataPartenaires(){
        return this.http.get(this.baseUrl+"API/partenaires")
       }
       
       retrieveDataById(id_){
         return this.http.get(this.baseUrl+"API/boutiques/"+id_)
       }
    
       retrieveDataPartenaireById(id_){
        return this.http.get(this.baseUrl+"API/partenaires/"+id_)
      }
       
       retrieveDataPromosById(id_)
       {
          return this.http.get(this.baseUrl+"API/promotions/"+id_)
       }
    
       retrieveBoutiquesPromos(){
        return this.http.get(this.baseUrl+"API/offres/1")
       }
    
       retrieveRestosPromos(){
        return this.http.get(this.baseUrl+"API/offres/2")
       }
    
       retrievePartenairesPromos(){
        return this.http.get(this.baseUrl+"API/offres/3")
       }
    
    }
    



    Lorsque je lance ionic cordova run android, tout va bien, c'est uniquement au moment du build que ça foire.

    J'ai cherché sur pas mal de forums, je trouve pas quelque chose qui fonctionne. J'ai vu cette réponse, j'ai un peu peur de tester avant de faire une bêtise : 

    https://stackoverflow.com/questions/47282686/encountered-undefined-provider-angular4

    Est-ce que quelqu'un pourrait m'aider ?

    Je vous remercie !!

    -
    Edité par CharlyLaLame 17 août 2019 à 14:52:00

    • Partager sur Facebook
    • Partager sur Twitter

    Ionic v3 : erreur lors du build

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown