我正在尝试将自己的自定义cordova插件导入ionic4项目。我尝试导入的插件是cordova-plugin-camera-preview
,但是我对其进行了一些更改(添加了视频录制功能以及一些功能startRecording
和stopRecording
)。问题是当我致电ionic serve -l
时,我的控制台出现以下错误:
Uncaught Error: Encountered undefined provider! Usually this means you have a circular dependencies. This might be caused by using 'barrel' index.ts files.
at syntaxError (vendor.js:19514)
at vendor.js:37540
at Array.forEach (<anonymous>)
at CompileMetadataResolver._getProvidersMetadata (vendor.js:37525)
at CompileMetadataResolver.getNgModuleMetadata (vendor.js:37252)
at JitCompiler._loadModules (vendor.js:42921)
at JitCompiler._compileModuleAndComponents (vendor.js:42904)
at JitCompiler.compileModuleAsync (vendor.js:42866)
at CompilerImpl.compileModuleAsync (vendor.js:91417)
at compileNgModuleFactory__PRE_R3__ (vendor.js:77693)
app.module.ts
中导入插件,import { CameraPreview } from '../../my-cordova-plugin-camera-preview/www/CameraPreview.js';
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule, BrowserAnimationsModule, IonicModule.forRoot(), AppRoutingModule],
providers: [
StatusBar,
NavigationBar,
SplashScreen,
CameraPreview,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent]
})
export class AppModule {}
并在我的home.page.ts
中这样:
import { CameraPreview, CameraPreviewPictureOptions, CameraPreviewOptions, CameraPreviewDimensions } from '../../../my-cordova-plugin-camera-preview/www/CameraPreview.js';
...
export class HomePage {
constructor(
private alertController: AlertController,
private cameraPreview: CameraPreview,
) {}
...
ionic cordova plugin add PATH/TO/PLUGIN/my-cordova-plugin-camera-preview
添加了该插件,效果似乎不错。我认为问题与我如何导入插件有关。任何帮助或提示表示赞赏!