Ionic 3 “遇到未定义的提供者!通常这意味着你有一个循环依赖”可能是由使用 'barrel' index.ts 文件引起的
Ionic 3 “Encountered undefined provider! Usually this means you have a circular dependencies” might be caused by using 'barrel' index.ts files
这是我在 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)
您需要使用 File 而不是 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
这是我在 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)
您需要使用 File 而不是 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