Unerwarteter Wert 'undefined', deklariert vom Modul 'AppModule'

70

Was ist hier falsch? Ich versuche es zum Laufen zu bringen, aber ich bekomme diesen Fehler in der Kopfzeile. Ich habe das <router-outlet></router-outlet>in das aufgenommen app.component.html, was von der templateUrlangerufen wird app.component.ts, immer noch kein Glück.

app.module.ts :

import { NgModule }             from '@angular/core';
import { BrowserModule }        from '@angular/platform-browser';
import { FormsModule }          from '@angular/forms';
import { RouterModule, Routes } from '@angular/router';


import { AppComponent }  from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { TopnavComponent } from './components/navbars/topnav/topnav.component';
import { LeftnavComponent } from './components/navbars/leftnav/leftnav.component';
import { LeftnavsecondaryComponent } from './components/navbars/leftnav-secondary/leftnav-secondary.component';
import { WorldofwarcraftComponent } from './components/games/worldofwarcraft/worldofwarcraft.component';

@NgModule({
    imports:    [ BrowserModule, FormsModule, AppRoutingModule ],
    declarations:   [ AppComponent, TopnavComponent, LeftnavComponent, LeftnavsecondaryComponent, WorldofwarcraftComponent ],
    bootstrap:  [ AppComponent ]
})

export class AppModule { }

app-routing.module.ts :

import { NgModule }              from '@angular/core';
import { RouterModule, Routes }  from '@angular/router';

import { WorldofwarcraftComponent } from './components/games/worldofwarcraft/worldofwarcraft.component';

const appRoutes: Routes = [
  { path: 'worldofwacraft', component: WorldofwarcraftComponent }
];

@NgModule({
  imports: [ RouterModule.forRoot(appRoutes) ],
  exports: [ RouterModule ]
})

export class AppRoutingModule {}
Kyriakos Menelaou
quelle
2
Klingt so, als ob irgendwo eine zyklische Abhängigkeit besteht.
Cartant
können Sie plnkr Ihres Codes hinzufügen
Amit kumar

Antworten:

133

Ich habe den gleichen Fehler erhalten, manchmal tritt dieses Problem auf und Sie müssen den Server nur mit ng serveoder mit der von Ihnen verwendeten CLI erneut ausführen , wie hier erwähnt

Cyber ​​Progs
quelle
6
Ich wünschte, ich hätte das früher gesehen. Ich habe mir 3 Stunden lang die Haare ausgezogen :(
M22an
1
FWIW, das gleiche gilt für Ionic.
Damon
Das hat bei mir funktioniert. Als erstes habe ich es versucht. Vielen Dank. Sollte meiner Meinung nach als richtige Antwort markiert werden
Pete Herc
1
Ich habe es immer noch nicht verstanden. Was hätte dazu geführt, dass ein solcher Fehler überhaupt aufgetaucht wäre?
Srivastav
1
Ausgezeichneter Fund, aber warum passiert das?
BK
93

Ich hatte den gleichen Fehler und entdeckte den Grund. Der Grund waren zwei Kommas in einem Array (zum Beispiel: importsEigenschaft) wie diesem.

@NgModule({
  imports: [
  CommonModule, FormsModule,,
]})
Mohammed Osman
quelle
2
Dies war auch in meinem Fall das genaue Problem.
Hlawuleka MAS
Du hast meinen Tag gerettet, das ist genau mein Problem.
Ram
9

Versuchen Sie dies kann Ihnen helfen:
Beenden und starten Sie den ng-serveDienst. Jetzt konnte die Seite navigieren.

Shankar Sha
quelle
Mohammed Osman - Danke !! Ich kann nicht glauben, dass ein zusätzliches Komma die Ursache war. Das Befolgen der Fehlermeldung hat überhaupt nicht geholfen, 'undefined' == "Sie haben ein zusätzliches Komma"; (
Robert
4

Dies wurde verursacht, weil ich den Export in einer meiner index.ts-Dateien wiederholt habe:

Samuel
quelle
4

Dies ist ein sehr ärgerlicher und schwer verständlicher Fehler. Ich habe einen Dateivergleich mit Araxis Merge durchgeführt und festgestellt, dass jede Datei in meinen beiden Projekten auf den ersten Blick fast identisch war. Nach weiterer Überprüfung stellte ich jedoch einen geringfügigen Unterschied in der Dateistruktur fest (nach dem ich zuerst nicht wirklich gesucht hatte, sondern nach Konfigurationsunterschieden), dass mein zweites Projekt eine js-Datei aus einer der ts-Dateien generiert hatte.

Wie Sie auf der linken Seite sehen können, befindet sich eine js-Datei. Das Projekt auf der rechten Seite zeigte meine Node-Builder-Komponente und lief fehlerfrei. Die rechte Seite hat das Problem verursacht.

Zusätzliche nicht benötigte Datei

Webpack hatte diese Javascript-Datei aufgenommen und versucht, sie zu verpacken. Als Webpack auf die ts-Version stieß, wurde es offensichtlich in eine doppelte js-Datei transpiliert, wodurch eine verwirrende Laufzeitausnahme entstand.

t {__zone_symbol__error: Error: Unexpected value 'undefined' declared by the 
module 'AppModule'
    at t.m (http://localhost:……}

Wie Sie sehen, hatte dieses Problem nichts mit der Konfiguration zu tun, da mich viele Beiträge zu der Annahme veranlasst hatten. Wie oben erwähnt, hat Ihr Problem möglicherweise mit der Konfiguration zu tun, in meinem Fall jedoch nicht.

jwize
quelle
2

Dies ähnelt der Antwort, die eine erneute Ausführung vorschlägt ng serve, war jedoch für meine Situation nicht relevant, da die App permanent in IIS ausgeführt wird. In meinem Fall hatte ich mit gebaut ng build --watch, aber das zu stoppen und erneut auszuführen behebt das Problem. Ich gehe davon aus, dass etwas falsch erstellt wurde, als es ein inkrementeller Build war, aber das vollständige Build hat das Problem behoben.

Tim
quelle
1

In meinem Fall war der Klassenname unterschiedlich und der Name zwischen {name}, der in app.mdoule.ts exportiert wurde, war unterschiedlich

Viel Glück

DEEPAK
quelle
Dies ist die gleiche Antwort wie bei @Alexander Zaldostanov, nur allgemeiner, daher hätte ich diesen Beitrag bearbeitet oder kommentiert (ich weiß, dass Sie möglicherweise noch nicht das Privileg haben, sorry).
Noumenon
1

In meinem Fall auf app.module.ts (Ionic 3)

providers: [
    , StatusBar
    , SplashScreen

Gewechselt zu:

providers: [
     StatusBar
    , SplashScreen

Und funktioniert.

Reynaldo
quelle
1

In meinem Szenario habe ich einen Fehler wie unten gemacht

  @NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class NewTestRoutingModule {
  static component : [NewTestContainerComponent, NewTestInletComponent, NewTestStructureComponent]
}

und im Modul

@NgModule({
  declarations: [LayersRoutingModule.component],

Das Komponentenarray im Routing sollte folgendermaßen aussehen.

 static component = [NewTestContainerComponent, NewTestInletComponent, NewTestStructureComponent]
Cegone
quelle
1

In meinem Fall lag es am Build-Problem. Möglicherweise haben Sie einige Komponenten oder andere Dinge in Ihr App-Modul aufgenommen und vergessen, es neu zu erstellen. Daher kann Angular im Browser Ihre neuen Einträge im App-Modul nicht erkennen, da ein Build erforderlich ist, um sie ordnungsgemäß zu registrieren. Beenden Sie für den Entwicklungsmodus den aktuellen Server und verwenden Sie ng serve.

Anurag Soni
quelle
0

Das ist mir auch passiert, in dem @Componentich Selector geschrieben habe: all-employeesund im app.module.tsModul war es<all- employees></all- employees>

Alexander Zaldostanov
quelle
0

Ich habe dies mit Angular 2 erlebt und es hat sich herausgestellt, dass es etwas mit Importen und relativen Pfaden zu tun hat, wenn Sie etwas vom selben Speicherort exportieren

Wenn Sie beispielsweise Fässer verwenden, geben Sie die explizit an ./

export * from './create-profile.component';

Anstatt von

export * from 'create-profile.component';
Yidir
quelle
0

Fehler in /turbo_modules/@angular/[email protected]/bundles/compiler.umd.js (2603: 26) Unerwarteter Wert 'undefined', deklariert vom Modul 'AppModule'

Ich hatte das Problem, dass export class someClassNamein einer meiner Dateien ein unbekannter / falscher Klassenname verwendet wurde (Kopier- / Einfügefehler) und nirgendwo registriert wurde (z. B. `AppModule.ts *).

testen
quelle
0

Ich habe diesen Fehler erhalten, weil ich fälschlicherweise TestBed.configureTestingModuleaußerhalb eines beforeEachBlocks platziert habe.

Pytth
quelle