Error: Type PdfViewerComponent in node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts is part of the declarations of 2 modules
Error: Type PdfViewerComponent in node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts is part of the declarations of 2 modules
我在尝试 ionic cordova build android --prod --release
时遇到此错误,使用 ionic serve
或 ionic cordova run android
应用运行良好。
Error: Type PdfViewerComponent in C:/app/node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts is part of the declarations of 2 modules: PdfViewerModule in C:/app/node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts and PdfModalPageModule in C:/app/src/pages/document-pdf/document-pdf.module.ts! Please consider moving PdfViewerComponent in C:/app/node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts to a higher module that imports PdfViewerModule in C:/app/node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts and PdfModalPageModule in C:/app/src/pages/document-pdf/document-pdf.module.ts. You can also create a new NgModule that exports and includes PdfViewerComponent in C:/app/node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts then import that NgModule in PdfViewerModule in C:/app/node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts and PdfModalPageModule in C:/app/src/pages/document-pdf/document-pdf.module.ts.
我只在 document-pdf.module.ts
中导入 ng-pdf-viewer 而不是在 app.module.ts
中
import {NgModule} from '@angular/core';
import {IonicPageModule} from 'ionic-angular';
import {PdfModalPage} from "./document-pdf";
import {PdfViewerComponent} from "ng2-pdf-viewer";
@NgModule({
declarations: [PdfModalPage, PdfViewerComponent],
imports: [IonicPageModule.forChild(PdfModalPage)],
})
export class PdfModalPageModule {}
angular & 离子版本
{
"name": "Test",
"version": "0.0.1",
"description": "",
"license": "Apache-2.0",
"scripts": {
"build": "ionic-app-scripts build",
"clean": "ionic-app-scripts clean",
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve",
"i18n": "ng-xi18n"
},
"dependencies": {
"@angular/common": "4.4.6",
"@angular/compiler": "4.4.6",
"@angular/compiler-cli": "4.4.6",
"@angular/core": "4.4.6",
"@angular/forms": "4.4.6",
"@angular/http": "4.4.6",
"@angular/platform-browser": "4.4.6",
"@angular/platform-browser-dynamic": "4.4.6",
"@ionic-native/app-version": "4.5.2",
"@ionic-native/background-mode": "^4.5.3",
"@ionic-native/contacts": "4.5.2",
"@ionic-native/core": "3.14.0",
"@ionic-native/device": "4.5.2",
"@ionic-native/diagnostic": "^4.5.2",
"@ionic-native/file": "4.5.2",
"@ionic-native/file-chooser": "4.5.2",
"@ionic-native/file-path": "4.5.2",
"@ionic-native/firebase": "^4.5.3",
"@ionic-native/in-app-browser": "3.14.0",
"@ionic-native/media": "4.5.2",
"@ionic-native/media-capture": "4.5.2",
"@ionic-native/network": "^4.5.2",
"@ionic-native/onesignal": "4.5.2",
"@ionic-native/screen-orientation": "4.5.2",
"@ionic-native/sim": "4.5.2",
"@ionic-native/splash-screen": "3.14.0",
"@ionic-native/sqlite": "^4.5.2",
"@ionic-native/status-bar": "3.14.0",
"@ionic-native/unique-device-id": "4.5.2",
"@ionic-native/video-editor": "^4.5.2",
"@ionic-native/video-player": "^4.5.2",
"@ionic/pro": "^1.0.16",
"@ionic/storage": "2.0.1",
"angular2-moment": "1.7.0",
"angular2-signaturepad": "2.6.1",
"angularfire2": "^5.0.0-rc.3",
"com-badrit-base64": "^0.2.0",
"cordova-android": "^6.4.0",
"cordova-ios": "^4.5.4",
"cordova-plugin-app-version": "^0.1.9",
"cordova-plugin-background-mode": "^0.7.2",
"cordova-plugin-compat": "^1.2.0",
"cordova-plugin-console": "^1.1.0",
"cordova-plugin-contacts": "^2.3.1",
"cordova-plugin-device": "^1.1.7",
"cordova-plugin-file": "^4.3.3",
"cordova-plugin-filechooser": "^1.0.1",
"cordova-plugin-filepath": "^1.2.0",
"cordova-plugin-firebase": "^0.1.25",
"cordova-plugin-inappbrowser": "^1.7.2",
"cordova-plugin-ionic": "^3.1.0",
"cordova-plugin-media": "^3.0.1",
"cordova-plugin-media-capture": "^1.4.3",
"cordova-plugin-network-information": "^2.0.1",
"cordova-plugin-screen-orientation": "^2.0.2",
"cordova-plugin-sim": "^1.3.3",
"cordova-plugin-splashscreen": "^4.1.0",
"cordova-plugin-statusbar": "^2.4.1",
"cordova-plugin-video-editor": "^1.1.3",
"cordova-plugin-whitelist": "^1.3.3",
"cordova-sqlite-storage": "^2.2.0",
"cordova.plugins.diagnostic": "^3.9.2",
"es6-promise-plugin": "^4.2.2",
"firebase": "^4.9.1",
"ionic-angular": "3.9.2",
"ionic-plugin-keyboard": "^2.2.1",
"ionic2-auto-complete": "1.6.2-alpha",
"ionicons": "3.0.0",
"ng2-pdf-viewer": "4.1.0",
"ng2-timeago": "1.0.7",
"onesignal-cordova-plugin": "^2.2.5",
"rxjs": "5.5.5",
"sw-toolbox": "3.6.0",
"zone.js": "0.8.18"
},
"devDependencies": {
"@ionic/app-scripts": "^3.1.8",
"ionic": "3.19.1",
"typescript": "2.6.2"
},
"config": {},
"cordova": {
"platforms": [
"android",
"ios"
],
"plugins": {
"cordova-plugin-console": {},
"cordova-plugin-device": {},
"cordova-plugin-inappbrowser": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-whitelist": {},
"ionic-plugin-keyboard": {},
"cordova-plugin-file": {},
"cordova-plugin-filechooser": {},
"cordova-plugin-app-version": {},
"cordova-plugin-filepath": {},
"onesignal-cordova-plugin": {},
"cordova-plugin-media-capture": {},
"cordova-plugin-screen-orientation": {},
"cordova-plugin-media": {},
"cordova-plugin-contacts": {},
"cordova-plugin-sim": {},
"com-badrit-base64": {},
"cordova-plugin-network-information": {},
"cordova-plugin-video-editor": {},
"cordova-sqlite-storage": {},
"cordova.plugins.diagnostic": {},
"cordova-plugin-firebase": {},
"cordova-plugin-background-mode": {}
}
}
}
离子信息
cli packages: (C:\app\node_modules)
@ionic/cli-utils : 1.19.1
ionic (Ionic CLI) : 3.19.1
global packages:
cordova (Cordova CLI) : 7.1.0
local packages:
@ionic/app-scripts : 3.1.8
Cordova Platforms : android 6.4.0
Ionic Framework : ionic-angular 3.9.2
我尝试全新安装删除 /platforms /www /plugins 和 /node_modules
您应该在 document-pdf.module.ts
中导入 PdfViewerModule
,不要在其中声明 PdfViewerComponent
,因为它已经在 PdfViewerModule
中声明了。
更新:你的模块应该是这样的:
import {NgModule} from '@angular/core';
import {IonicPageModule} from 'ionic-angular';
import {PdfModalPage} from "./document-pdf";
import { PdfViewerModule } from 'ng2-pdf-viewer';
@NgModule({
declarations: [PdfModalPage],
imports: [IonicPageModule.forChild(PdfModalPage), PdfViewerModule]
})
export class PdfModalPageModule {}
我在尝试 ionic cordova build android --prod --release
时遇到此错误,使用 ionic serve
或 ionic cordova run android
应用运行良好。
Error: Type PdfViewerComponent in C:/app/node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts is part of the declarations of 2 modules: PdfViewerModule in C:/app/node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts and PdfModalPageModule in C:/app/src/pages/document-pdf/document-pdf.module.ts! Please consider moving PdfViewerComponent in C:/app/node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts to a higher module that imports PdfViewerModule in C:/app/node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts and PdfModalPageModule in C:/app/src/pages/document-pdf/document-pdf.module.ts. You can also create a new NgModule that exports and includes PdfViewerComponent in C:/app/node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts then import that NgModule in PdfViewerModule in C:/app/node_modules/ng2-pdf-viewer/ng2-pdf-viewer.d.ts and PdfModalPageModule in C:/app/src/pages/document-pdf/document-pdf.module.ts.
我只在 document-pdf.module.ts
中导入 ng-pdf-viewer 而不是在 app.module.ts
import {NgModule} from '@angular/core';
import {IonicPageModule} from 'ionic-angular';
import {PdfModalPage} from "./document-pdf";
import {PdfViewerComponent} from "ng2-pdf-viewer";
@NgModule({
declarations: [PdfModalPage, PdfViewerComponent],
imports: [IonicPageModule.forChild(PdfModalPage)],
})
export class PdfModalPageModule {}
angular & 离子版本
{
"name": "Test",
"version": "0.0.1",
"description": "",
"license": "Apache-2.0",
"scripts": {
"build": "ionic-app-scripts build",
"clean": "ionic-app-scripts clean",
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve",
"i18n": "ng-xi18n"
},
"dependencies": {
"@angular/common": "4.4.6",
"@angular/compiler": "4.4.6",
"@angular/compiler-cli": "4.4.6",
"@angular/core": "4.4.6",
"@angular/forms": "4.4.6",
"@angular/http": "4.4.6",
"@angular/platform-browser": "4.4.6",
"@angular/platform-browser-dynamic": "4.4.6",
"@ionic-native/app-version": "4.5.2",
"@ionic-native/background-mode": "^4.5.3",
"@ionic-native/contacts": "4.5.2",
"@ionic-native/core": "3.14.0",
"@ionic-native/device": "4.5.2",
"@ionic-native/diagnostic": "^4.5.2",
"@ionic-native/file": "4.5.2",
"@ionic-native/file-chooser": "4.5.2",
"@ionic-native/file-path": "4.5.2",
"@ionic-native/firebase": "^4.5.3",
"@ionic-native/in-app-browser": "3.14.0",
"@ionic-native/media": "4.5.2",
"@ionic-native/media-capture": "4.5.2",
"@ionic-native/network": "^4.5.2",
"@ionic-native/onesignal": "4.5.2",
"@ionic-native/screen-orientation": "4.5.2",
"@ionic-native/sim": "4.5.2",
"@ionic-native/splash-screen": "3.14.0",
"@ionic-native/sqlite": "^4.5.2",
"@ionic-native/status-bar": "3.14.0",
"@ionic-native/unique-device-id": "4.5.2",
"@ionic-native/video-editor": "^4.5.2",
"@ionic-native/video-player": "^4.5.2",
"@ionic/pro": "^1.0.16",
"@ionic/storage": "2.0.1",
"angular2-moment": "1.7.0",
"angular2-signaturepad": "2.6.1",
"angularfire2": "^5.0.0-rc.3",
"com-badrit-base64": "^0.2.0",
"cordova-android": "^6.4.0",
"cordova-ios": "^4.5.4",
"cordova-plugin-app-version": "^0.1.9",
"cordova-plugin-background-mode": "^0.7.2",
"cordova-plugin-compat": "^1.2.0",
"cordova-plugin-console": "^1.1.0",
"cordova-plugin-contacts": "^2.3.1",
"cordova-plugin-device": "^1.1.7",
"cordova-plugin-file": "^4.3.3",
"cordova-plugin-filechooser": "^1.0.1",
"cordova-plugin-filepath": "^1.2.0",
"cordova-plugin-firebase": "^0.1.25",
"cordova-plugin-inappbrowser": "^1.7.2",
"cordova-plugin-ionic": "^3.1.0",
"cordova-plugin-media": "^3.0.1",
"cordova-plugin-media-capture": "^1.4.3",
"cordova-plugin-network-information": "^2.0.1",
"cordova-plugin-screen-orientation": "^2.0.2",
"cordova-plugin-sim": "^1.3.3",
"cordova-plugin-splashscreen": "^4.1.0",
"cordova-plugin-statusbar": "^2.4.1",
"cordova-plugin-video-editor": "^1.1.3",
"cordova-plugin-whitelist": "^1.3.3",
"cordova-sqlite-storage": "^2.2.0",
"cordova.plugins.diagnostic": "^3.9.2",
"es6-promise-plugin": "^4.2.2",
"firebase": "^4.9.1",
"ionic-angular": "3.9.2",
"ionic-plugin-keyboard": "^2.2.1",
"ionic2-auto-complete": "1.6.2-alpha",
"ionicons": "3.0.0",
"ng2-pdf-viewer": "4.1.0",
"ng2-timeago": "1.0.7",
"onesignal-cordova-plugin": "^2.2.5",
"rxjs": "5.5.5",
"sw-toolbox": "3.6.0",
"zone.js": "0.8.18"
},
"devDependencies": {
"@ionic/app-scripts": "^3.1.8",
"ionic": "3.19.1",
"typescript": "2.6.2"
},
"config": {},
"cordova": {
"platforms": [
"android",
"ios"
],
"plugins": {
"cordova-plugin-console": {},
"cordova-plugin-device": {},
"cordova-plugin-inappbrowser": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-whitelist": {},
"ionic-plugin-keyboard": {},
"cordova-plugin-file": {},
"cordova-plugin-filechooser": {},
"cordova-plugin-app-version": {},
"cordova-plugin-filepath": {},
"onesignal-cordova-plugin": {},
"cordova-plugin-media-capture": {},
"cordova-plugin-screen-orientation": {},
"cordova-plugin-media": {},
"cordova-plugin-contacts": {},
"cordova-plugin-sim": {},
"com-badrit-base64": {},
"cordova-plugin-network-information": {},
"cordova-plugin-video-editor": {},
"cordova-sqlite-storage": {},
"cordova.plugins.diagnostic": {},
"cordova-plugin-firebase": {},
"cordova-plugin-background-mode": {}
}
}
}
离子信息
cli packages: (C:\app\node_modules)
@ionic/cli-utils : 1.19.1
ionic (Ionic CLI) : 3.19.1
global packages:
cordova (Cordova CLI) : 7.1.0
local packages:
@ionic/app-scripts : 3.1.8
Cordova Platforms : android 6.4.0
Ionic Framework : ionic-angular 3.9.2
我尝试全新安装删除 /platforms /www /plugins 和 /node_modules
您应该在 document-pdf.module.ts
中导入 PdfViewerModule
,不要在其中声明 PdfViewerComponent
,因为它已经在 PdfViewerModule
中声明了。
更新:你的模块应该是这样的:
import {NgModule} from '@angular/core';
import {IonicPageModule} from 'ionic-angular';
import {PdfModalPage} from "./document-pdf";
import { PdfViewerModule } from 'ng2-pdf-viewer';
@NgModule({
declarations: [PdfModalPage],
imports: [IonicPageModule.forChild(PdfModalPage), PdfViewerModule]
})
export class PdfModalPageModule {}