Estou recebendo este erro depois de migrar para o NgModule, o erro não ajuda muito, algum conselho, por favor?
Error: Error: Unexpected value 'undefined' imported by the module 'AppModule'
at new BaseException (http://localhost:5555/node_modules/@angular/compiler/bundles/compiler.umd.js:5116:27)
at eval (http://localhost:5555/node_modules/@angular/compiler/bundles/compiler.umd.js:13231:35)
at Array.forEach (native)
at CompileMetadataResolver.getNgModuleMetadata (http://localhost:5555/node_modules/@angular/compiler/bundles/compiler.umd.js:13215:48)
at RuntimeCompiler._compileComponents (http://localhost:5555/node_modules/@angular/compiler/bundles/compiler.umd.js:15845:51)
at RuntimeCompiler._compileModuleAndComponents (http://localhost:5555/node_modules/@angular/compiler/bundles/compiler.umd.js:15769:41)
at RuntimeCompiler.compileModuleAsync (http://localhost:5555/node_modules/@angular/compiler/bundles/compiler.umd.js:15746:25)
at PlatformRef_._bootstrapModuleWithZone (http://localhost:5555/node_modules/@angular/core/bundles/core.umd.js:9991:29)
at PlatformRef_.bootstrapModule (http://localhost:5555/node_modules/@angular/core/bundles/core.umd.js:9984:25)
at Object.eval (http://localhost:5555/app/main.js:8:53)
Evaluating http://localhost:5555/app/main.js
Error loading http://localhost:5555/app/main.js "Report this error at https://github.com/mgechev/angular2-seed/issues"(anonymous function) @ contracts:142ZoneDelegate.invoke @ zone.js?1472711930202:332Zone.run @ zone.js?1472711930202:225(anonymous function) @ zone.js?1472711930202:586ZoneDelegate.invokeTask @ zone.js?1472711930202:365Zone.runTask @ zone.js?1472711930202:265drainMicroTaskQueue @ zone.js?1472711930202:491ZoneTask.invoke @ zone.js?1472711930202:435
app.module.ts:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { APP_BASE_HREF } from '@angular/common';
import { RouterModule } from '@angular/router';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { routes } from './app.routes';
import { provide } from '@angular/core';
//dgf ng2-translate
import { TRANSLATE_PROVIDERS, TranslateLoader, TranslateStaticLoader, MissingTranslationHandler } from 'ng2-translate/ng2-translate';
import { HTTP_PROVIDERS, Http } from '@angular/http';
import { FormsModule,ReactiveFormsModule } from '@angular/forms';
import { TranslationNotFoundHandler } from './shared/common/TranslationNotFoundHandler';
//dgf ng2-translate END
import {CalendarModule,DataTableModule,DialogModule,PanelModule} from 'primeng/primeng';
import {TranslateModule} from 'ng2-translate/ng2-translate';
import { AuthGuard,AppConfigService,AppConfig,DateHelper,ThemeComponent,ToolbarComponent, RemoveHostTagDirective } from './index';
import { HomeComponent,MessagesExampleComponent,PrimeNgHomeComponent,CalendarComponent,Ng2BootstrapExamplesComponent,DatepickerDemoComponent,UserListComponent,UserEditComponent,ContractListComponent,AboutComponent } from './index';
@NgModule({
imports: [BrowserModule, HttpModule, RouterModule.forRoot(routes), /* AboutModule, HomeModule, SharedModule.forRoot()*/
FormsModule,
ReactiveFormsModule,
//third-party
,TranslateModule.forRoot() //,
//third-party PRIMENG
,CalendarModule,DataTableModule,DialogModule,PanelModule
],
declarations: [
AppComponent,ThemeComponent, ToolbarComponent, RemoveHostTagDirective,
HomeComponent,MessagesExampleComponent,PrimeNgHomeComponent,CalendarComponent,Ng2BootstrapExamplesComponent,DatepickerDemoComponent,UserListComponent,UserEditComponent,ContractListComponent,AboutComponent
],
providers: [{
provide: APP_BASE_HREF,
useValue: '<%= APP_BASE %>'
},
FormsModule,
ReactiveFormsModule,
provide(TranslateLoader, { //DGF ng2-translate
useFactory: (http: Http) => new TranslateStaticLoader(http, 'assets/i18n', '.json'),
deps: [Http]
}),
provide(MissingTranslationHandler, { useClass: TranslationNotFoundHandler }), //DGF ng2-translate
AuthGuard,AppConfigService,AppConfig,
DateHelper
],
bootstrap: [AppComponent]
})
export class AppModule { }
, ,
Respostas:
Para qualquer pessoa que enfrente esse mesmo erro, minha situação é que tenho vírgulas duplas na seção de importações
fonte
Certifique-se de que os módulos não importam uns aos outros. Então, não deveria haver
No Módulo A:
imports[ModuleB]
No Módulo B:
imports[ModuleA]
fonte
Isso pode ser causado por vários cenários, como
fonte
Nenhuma das soluções acima funcionou para mim, mas simplesmente parar e executar "ng serve" novamente.
fonte
circular dependency
Eu tive o mesmo problema. No meu caso, o motivo é uma vírgula extra.
fonte
Tive esse erro porque tinha um
index.ts
arquivo na raiz do meu aplicativo que estava exportando o meuapp.component.ts
. Então, pensei que poderia fazer o seguinte:Isso funcionou e não me deu linhas onduladas vermelhas e até mesmo o intellisense traz o AppComponent quando você começa a digitá-lo. Mas descobri que ele estava causando esse erro. Depois que mudei para:
O erro foi embora.
fonte
Certifique-se de não importar um módulo / componente como este:
Mas deveria ser
fonte
Este problema de dependências circulares de dois módulos
Módulo 1: importar Módulo 2
Módulo 2: importar Módulo 1
fonte
Estou construindo uma biblioteca de componentes e comecei a receber este erro em meu aplicativo que está importando a referida biblioteca. Ao executar
ng build --prod
oung serve --aot
no aplicativo, eu obteria:Unexpected value 'undefined' imported by the module 'ɵm in node_modules/<library-name>/<library-name>.d.ts'
Mas sem erros ao usar
ng serve
ou testar os módulos na própria biblioteca, mesmo durante a construção--prod
.Acontece que eu também fui enganado pela intellisense. Para alguns dos meus módulos, importei um módulo irmão como
import { DesignModule } from '../../design';
ao invés de
import { DesignModule } from '../../design/design.module';
Funcionou bem em todas as compilações, exceto na que descrevi.
Isso foi terrível de definir e eu tive sorte que não demorou mais do que demorou. Espero que isso ajude alguém.
fonte
Teve a mesma exceção ao tentar compilar um aplicativo Angular 5.
No meu caso, descobri que era uma dependência circular que descobri usando uma ferramenta madge . Encontrou os arquivos contendo dependência circular executando
fonte
Você tem que remover linha
import { provide } from '@angular/core';
deapp.module.ts
comoprovide
é obsoleto agora. Você deve usarprovide
o seguinte em provedores:fonte
Apenas colocar o provedor dentro do forRoot funciona: https://github.com/ocombe/ng2-translate
fonte
existe outra solução simples para isso. Eu tenho 2 módulos que estão de alguma forma profundos na estrutura usando um ao outro. Eu tive o mesmo problema com dependências circulares com webpack e angular 2. Eu simplesmente mudei a forma como um módulo é declarado:
Quando agora uso a declaração de importações no atributo ngModule, simplesmente uso:
Com isso, todos os problemas vão embora.
fonte
Meu problema era ter uma exportação duas vezes em index.ts
Remover um deles resolveu o problema.
fonte
Tive esse problema, é verdade que o erro no console não é descritivo. Mas se você olhar para a saída angular-cli:
Você verá um AVISO, apontando para a dependência circular
Portanto, a solução é remover uma importação de um dos Módulos.
fonte
O problema é que há pelo menos uma importação cujo arquivo de origem está faltando.
Por exemplo, recebi o mesmo erro quando estava usando
Mas o arquivo './app-routing.module' não estava lá no caminho fornecido.
Removi esta importação e o erro desapareceu.
fonte
Eu tive o mesmo erro, nenhuma das dicas acima não ajudou.
No meu caso, foi causado pelo WebStorm, combinou duas importações em uma.
Extraí isso em duas importações separadas
Depois disso, funciona sem erros.
fonte
./models
outra vez./model
Caso seu índice exporte um módulo - Esse módulo não deve importar seus componentes do mesmo índice, deve importá-los diretamente do arquivo de componentes.
Eu tive esse problema, e quando mudei de importar os componentes no arquivo do módulo usando o índice para importá-los usando o arquivo direto, isso foi resolvido.
por exemplo, alterado:
para:
também remova as exportações agora desnecessárias de seu índice, por exemplo:
para:
fonte
Outro motivo pode ser algum código como este:
Como as exportações é um array vazio e, antes disso, deve ser removido.
fonte
Tive o mesmo problema, adicionei o componente no index.ts de a = da pasta e fiz uma exportação. Ainda assim, o erro indefinido estava aparecendo. Mas o IDE mostra todas as linhas vermelhas onduladas
Então, conforme sugerido, mudou de
para
fonte
Contanto que você tenha certeza de que não está fazendo nada de errado, termine o "ng serve" e reinicie-o. Ao fazer isso, o compilador faz todo o seu trabalho e o aplicativo funciona conforme o esperado. Experiências anteriores com módulos me ensinaram a criá-los quando "ng serve" não estiver em execução ou a reiniciar o terminal quando terminar.
Reiniciar o "ng serve" também funciona quando você está emitindo um novo componente para outro componente, é possível que o compilador não tenha reconhecido seu novo componente, simplesmente reinicie o "ng serve"
Isso funcionou para mim apenas alguns minutos atrás.
fonte
Eu corrijo isso excluindo todos os arquivos de exportação de índice, incluindo tubos, serviços. então, todo o caminho de importação de arquivo é um caminho específico. por exemplo.
import { AuthService } from './_common/services/auth.service';
substituir
import { AuthService } from './_common/services';
além disso, não exporte a classe padrão.
fonte
Meu problema era um nome de componente escrito incorretamente dentro do
component.ts
.A declaração de importação não mostrou um erro, mas a declaração sim, o que me enganou.
fonte
O argumento não utilizado " http: Http " privado no construtor de app.component.ts causou-me o mesmo erro e foi resolvido ao remover o argumento não utilizado do construtor
fonte
Provavelmente o erro estará relacionado ao arquivo AppModule.ts.
Para resolver este problema, verifique se todos os componentes são declarados e se todos os serviços que declaramos são colocados nos provedores etc.
E mesmo se tudo parecer certo no arquivo AppModule e você ainda receber o erro, pare a instância angular em execução e reinicie-a mais uma vez. Isso pode resolver o seu problema se tudo no arquivo do módulo estiver correto e se você ainda estiver recebendo o erro.
fonte
Para mim, o problema foi resolvido alterando a sequência de importação:
Um com o erro:
Alterou para:
fonte
As soluções acima não funcionaram para mim.
Então, eu apoio a versão do angular-cli de 1.6.4 para 1.4.4 e isso resolveu meu problema.
Não sei se esta é a melhor solução, mas por enquanto, funcionou para mim
fonte
Eu estava enfrentando o mesmo problema. O problema era que eu estava importando alguma classe de index.ts
index.ts contém a declaração de exportação
Eu mudei para o arquivo .ts que contém o objeto de classe real
e resolvido.
fonte
Para mim, esse erro foi causado apenas por importação não utilizada:
Erro resultante:
Comente, e o erro não ocorrerá:
fonte
Eu conheci este problema na situação:
- app-module --- app-routing // app router ----- imports: [RouterModule.forRoot(routes)] --- demo-module // sub-module ----- demo-routing ------- imports: [RouterModule.forRoot(routes)] // --> should be RouterModule.forChild!
porque existe apenas um
root
.fonte