Ionic 3 «Обнаружен неопределенный поставщик! Обычно это означает, что у вас есть циклические зависимости »может быть вызвано использованием файла« баррель »index.ts - PullRequest
0 голосов
/ 04 апреля 2019

Вот несколько бесполезная ошибка, которую я получаю в своем приложении Angular / TypeScript.Пока кто-нибудь не сделает сообщение об ошибке лучше, что мы можем сделать с этим?Каковы наиболее вероятные ситуации, которые вызывают это?Здесь мой файл app.module.js и файлы home.ts.

Когда я удаляю файл и плагин для открытия файлов, он не выдает ошибку.Если я включу этот плагин в home.ts, он показывает ошибку.Каковы наиболее вероятные ситуации, которые вызывают это?

app.module.ts:

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';
import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import {  FileOriginal } from '@ionic-native/file';
import { FileOpenerOriginal } from '@ionic-native/file-opener';
        @NgModule({
          declarations: [
            MyApp,
            HomePage
          ],
          imports: [
            BrowserModule,
            IonicModule.forRoot(MyApp)
          ],
          bootstrap: [IonicApp],
          entryComponents: [
            MyApp,
            HomePage
          ],
          providers: [
            StatusBar,
            SplashScreen,
            {provide: ErrorHandler, useClass: IonicErrorHandler},
            FileOriginal,
            FileOpenerOriginal
          ]
        })
        export class AppModule {}

home.ts

import {  FileOriginal } from '@ionic-native/file';
import {  FileOpenerOriginal } from '@ionic-native/file-opener'

    constructor(public navCtrl: NavController,private plt: Platform, private file: FileOriginal, private fileOpener: FileOpenerOriginal) {
          }

Я получил ошибку вродеэто:

Uncaught Error: Encountered undefined provider! 
Usually this means you have a circular dependencies (might be caused by using 'barrel' index.ts files.)
      at syntaxError (compiler.js:486)  
      at compiler.js:15767  
      at Array.forEach (<anonymous>)  
      at CompileMetadataResolver._getProvidersMetadata (compiler.js:15752)  
      at CompileMetadataResolver.getNgModuleMetadata (compiler.js:15320)  
      at JitCompiler._loadModules (compiler.js:34413)  
      at JitCompiler._compileModuleAndComponents (compiler.js:34374)  

1 Ответ

0 голосов
/ 04 апреля 2019

Вам нужно использовать Файл, а не FileOriginal.В моем проекте я объявляю File в качестве поставщика, и он работает.Вы устанавливаете его правильно?
Когда вы используете эту команду ionic cordova plugin add cordova-plugin-file, было ли у вас предупреждение о зависимостях?
Возможно, версия плагина не совместима с ionic 3.

РЕДАКТИРОВАТЬ

Команда:

ionic cordova plugin add cordova-plugin-file
npm install @ionic-native/file@4.2.0
...