Saya mencoba membuat aplikasi 2 ionik. Saat saya mencoba aplikasi di browser dengan servis ionik atau meluncurkannya di emulator, semuanya berfungsi dengan baik.
Tetapi ketika saya mencoba membangunnya setiap kali terjadi kesalahan
ionic-app-script tast: "build"
Error Type AddEvent in "PATH"/add.event.ts is part of the declarations of 2 modules: AppModule in "PATH"/app.modules.ts and AddEvent in "PATH"/add-event.module.ts.
Please consider moving AddEvent in "PATH"/add-event.ts to a higher module that imports AppModule in "PATH"/app.module.ts and AddEventModule.
You can also creat a new NgModule that exports and includes AddEvent then import that NgModule in AppModule and AddEventModule
AppModule saya adalah
import { NgModule, ErrorHandler } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { AngularFireModule } from 'angularfire2';
import { MyApp } from './app.component';
import { Eventdata } from '../providers/eventdata';
import { AuthProvider } from '../providers/auth-provider';
import { HttpModule } from '@angular/http';
import { HomePage } from '../pages/home/home';
import { Login } from '../pages/login/login';
import { Register } from '../pages/register/register';
import { AddEvent } from '../pages/add-event/add-event';
import { EventDetails } from '../pages/event-details/event-details';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
@NgModule({
declarations: [
MyApp,
HomePage,
Login,
Register,
AddEvent,
EventDetails
],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp),
HttpModule,
AngularFireModule.initializeApp(config)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
HomePage,
Login,
Register,
AddEvent,
EventDetails
],
providers: [
StatusBar,
SplashScreen,
{provide: ErrorHandler, useClass: IonicErrorHandler}, Eventdata, AuthProvider
]
})
export class AppModule {}
dan add-event.module.ts saya adalah
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { AddEvent } from './add-event';
@NgModule({
declarations: [
AddEvent,
],
imports: [
IonicPageModule.forChild(AddEvent),
],
exports: [
AddEvent
]
})
export class AddEventModule {}
Saya memahami bahwa saya harus menghapus salah satu deklarasi, tetapi saya tidak tahu caranya.
Jika saya menghapus deklarasi dari AppModule, saya mendapatkan pesan Error bahwa Halaman Login tidak ditemukan, saat menjalankan servis ionik
Beberapa orang yang menggunakan
Lazy loading
akan menemukan halaman ini.Berikut adalah apa yang saya lakukan untuk memperbaiki berbagi sebuah direktif .
shared.module.ts
Kemudian di app.module dan modul Anda yang lain
sumber
Solusinya sangat sederhana. Temukan
*.module.ts
file dan deklarasi komentar. Dalam kasus Anda, temukanaddevent.module.ts
file dan hapus / komentar satu baris di bawah ini:Solusi ini bekerja di ionic 3 untuk halaman yang dihasilkan oleh ionic-cli dan bekerja di kedua perintah
ionic serve
danionic cordova build android --prod --release
!Berbahagialah...
sumber
IN Angular 4. Kesalahan ini dianggap sebagai masalah cache run time.
kasus: 1 kesalahan ini akan terjadi, setelah Anda mengimpor komponen dalam satu modul dan impor dalam sub modul akan terjadi lagi.
case: 2 Impor satu Komponen di tempat yang salah dan dihapus dan diganti dalam modul yang Benar, Saat itu dianggap sebagai masalah cache servis. Perlu Menghentikan proyek dan mulai melakukan servis lagi, Ini akan berfungsi seperti yang diharapkan.
sumber
Jika halaman Anda dibuat dengan menggunakan CLI maka itu membuat file dengan namafile.module.ts maka Anda harus mendaftarkan namafile.module.ts Anda di array impor di file app.module.ts dan jangan masukkan halaman itu dalam array deklarasi .
misalnya.
sumber
Modul ini ditambahkan secara otomatis saat Anda menjalankan perintah ionik. Namun itu tidak perlu. Jadi solusi alternatif adalah menghapus add-event.module.ts dari proyek.
sumber
Anda dapat mencoba solusi ini (untuk Ionic 3)
Dalam kasus saya, kesalahan ini terjadi ketika saya memanggil halaman dengan menggunakan kode berikut
Saya baru saja menghapus tanda kutip seperti berikut dan juga mengimpor halaman itu di bagian atas file yang saya gunakan untuk memanggil halaman Login
Saya tidak dapat menjelaskan perbedaannya saat ini karena saya adalah developer level pemula
sumber
Sejak rilis Ionic 3.6.0, setiap halaman yang dibuat menggunakan Ionic-CLI sekarang menjadi modul Angular. Ini berarti Anda telah menambahkan modul ke impor Anda di file
src/app/app.module.ts
sumber
Untuk mengatasi kesalahan ini, Anda harus mulai dengan menghapus semua impor app.module.ts dan memiliki sesuatu seperti ini:
Selanjutnya edit modul halaman Anda, seperti ini:
Kemudian tambahkan anotasi IonicPage sebelum anotasi komponen dari semua halaman:
Kemudian edit jenis rootPage Anda menjadi string dan hapus impor halaman (jika ada di komponen aplikasi Anda)
Maka fungsi navigasinya harus seperti ini:
Anda dapat menemukan sumber solusi ini di sini: Komponen adalah bagian dari deklarasi 2 modul
sumber
Menyelesaikannya - Komponen adalah bagian dari deklarasi 2 modul
Dan Jalankan perintah ionic cordova build android --prod --lepaskan Bekerja di aplikasi saya
sumber
Punya masalah yang sama. Pastikan untuk menghapus setiap kemunculan modul dalam "deklarasi" tetapi AppModule.
Bekerja untuk saya.
sumber
Perbaikan sederhana,
Pergi ke
app.module.ts
file Anda danremove/comment
semua yang mengikatadd_event
. Tidak perlu menambahkan komponen keApp.module.t
s yang dihasilkan olehionic cli
karena itu membuat modul terpisah untuk komponen yang dipanggilcomponents.module.ts
.Ini memiliki impor komponen modul yang dibutuhkan
sumber
Seperti yang dikatakan kesalahan untuk menghapus modul AddEvent dari root jika Halaman / Komponen Anda sudah memiliki file modul ionik jika tidak hanya menghapusnya dari / halaman anak / komponen lain, di halaman akhir / komponen harus ada hanya dalam satu file modul diimpor jika akan digunakan.
Secara khusus, Anda harus menambahkan modul root jika diperlukan di beberapa halaman dan jika di halaman tertentu, simpan hanya dalam satu halaman.
sumber
Saya tidak sengaja membuat komponen saya sendiri dengan nama yang sama dengan komponen perpustakaan.
Ketika saya menggunakan IDE saya untuk mengimpor pustaka secara otomatis untuk komponen, saya memilih pustaka yang salah.
Oleh karena itu kesalahan ini mengeluh, bahwa saya mendeklarasikan ulang komponen tersebut.
Saya memperbaikinya dengan mengimpor dari kode komponen saya sendiri, bukan dari pustaka.
Saya juga bisa memperbaiki dengan memberi nama berbeda: hindari ambiguitas.
sumber
Dalam skenario ini, buat modul bersama lainnya yang mengimpor semua komponen yang digunakan dalam beberapa modul.
Dalam komponen bersama. mendeklarasikan komponen tersebut. Dan kemudian impor modul bersama di appmodule serta di modul lain tempat Anda ingin mengakses. Ini akan berhasil 100%, saya melakukan ini dan membuatnya berfungsi.
sumber
Saya mengalami kesalahan yang sama tetapi saya menemukan bahwa ketika Anda mengimpor
AddEventModule
, Anda tidak dapat mengimporAddEvent
modul karena itu akan menimbulkan kesalahan dalam kasus ini.sumber