Tento construir um aplicativo iônico 2. Quando tento o aplicativo no navegador com servidor iônico ou o lanço em um emulador, tudo funciona bem.
Mas quando tento construí-lo sempre que o erro
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
meu AppModule é
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 {}
e meu add-event.module.ts é
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 {}
Eu entendo que tenho que remover uma das declarações, mas não sei como.
Se eu remover a declaração do AppModule, obtenho um erro informando que a página de login não foi encontrada durante a execução do serviço iônico
Algumas pessoas que usam
Lazy loading
vão tropeçar nesta página.Aqui está o que fiz para corrigir o compartilhamento de uma diretiva .
shared.module.ts
Em seguida, em app.module e seus outros módulos
fonte
A solução é muito simples. Encontre
*.module.ts
arquivos e declarações de comentários. No seu caso, localize oaddevent.module.ts
arquivo e remova / comente uma linha abaixo:Esta solução funcionou no ionic 3 para as páginas geradas pelo ionic-cli e funciona nos comandos
ionic serve
eionic cordova build android --prod --release
!Seja feliz...
fonte
IN Angular 4. Este erro é considerado como um problema de cache de tempo de execução do servidor.
caso: 1 este erro ocorrerá, uma vez que você importe o componente em um módulo e novamente ocorrerá a importação em submódulos.
case: 2 Importar um componente no lugar errado e removido e recolocado no módulo correto, dessa vez considerado como problema de cache de serviço. É necessário interromper o projeto e iniciar novamente o serviço. Funcionará conforme o esperado.
fonte
Se suas páginas são criadas usando CLI, então ele cria um arquivo com filename.module.ts, então você deve registrar seu filename.module.ts na matriz de importações no arquivo app.module.ts e não inserir essa página na matriz de declarações .
por exemplo.
fonte
Este módulo é adicionado automaticamente quando você executa o comando iônico. No entanto, não é necessário. Portanto, uma solução alternativa é remover add-event.module.ts do projeto.
fonte
Você pode apenas tentar esta solução (para Ionic 3)
No meu caso, esse erro acontece quando eu chamo uma página usando o seguinte código
Acabei de remover as citações como a seguir e também importei aquela página no topo do arquivo que usei, chame a página de Login
Não posso explicar a diferença neste momento, pois sou um desenvolvedor de nível iniciante
fonte
Desde o lançamento do Ionic 3.6.0, cada página gerada usando Ionic-CLI agora é um módulo Angular. Isso significa que você deve adicionar o módulo às suas importações no arquivo
src/app/app.module.ts
fonte
Para superar esse erro, você deve começar removendo todas as importações de app.module.ts e ter algo assim:
Em seguida, edite o módulo de suas páginas, como este:
Em seguida, adicione a anotação do IonicPage antes da anotação do componente de todas as páginas:
Em seguida, edite seu tipo rootPage para ser uma string e remova as importações de páginas (se houver algum no componente do seu aplicativo)
Então, a função de navegação deve ser assim:
Você pode encontrar a fonte desta solução aqui: O componente faz parte da declaração de 2 módulos
fonte
Resolvido - o componente faz parte da declaração de 2 módulos
E execute o comando ionic cordova build android --prod --release its Working in my app
fonte
Tive o mesmo problema. Apenas certifique-se de remover todas as ocorrências do módulo em "declarações", exceto AppModule.
Funcionou para mim.
fonte
Correção simples,
Vá para o seu
app.module.ts
arquivo eremove/comment
tudo o que está vinculadoadd_event
. Não há necessidade de adicionar componentes aosApp.module.t
s gerados peloionic cli
porque ele cria um módulo separado para os componentes chamadoscomponents.module.ts
.Possui as importações de componentes do módulo necessárias
fonte
Como o erro diz para remover o módulo AddEvent da raiz se sua página / componente já tiver arquivo de módulo iônico, se não apenas removê-lo da outra / página / componente filho, na página final / componente deve estar presente em apenas um arquivo de módulo importado se for usado.
Especificamente, você deve adicionar o módulo raiz se necessário em várias páginas e se em páginas específicas mantê-lo em apenas uma página.
fonte
Eu acidentalmente criei meu próprio componente com o mesmo nome de um componente de biblioteca.
Quando usei meu IDE para importar automaticamente a biblioteca para o componente, escolhi a biblioteca errada.
Portanto, esse erro estava reclamando, que eu estava declarando novamente o componente.
Consertei importando do código do meu próprio componente, em vez da biblioteca.
Eu também poderia corrigir nomeando de forma diferente: evite ambigüidade.
fonte
Neste cenário, crie outro módulo compartilhado que importe todos os componentes que estão sendo usados no módulo múltiplo.
No componente compartilhado. declare esses componentes. E então importe o módulo compartilhado no appmodule, bem como em outro módulo onde você deseja acessar. Vai funcionar 100%, eu fiz isso e fiz funcionar.
fonte
Eu tive o mesmo erro, mas descobri que ao importar um
AddEventModule
, não é possível importar umAddEvent
módulo, pois apresentaria um erro neste caso.fonte