2017-10-04 16 views
1

Mein aktuelles eckiges Projekt wurde gestartet, bevor die eckige AOT-Funktion unterstützt wurde. Jetzt versuche ich es zur Arbeit zu bringen. Ich erhalte den folgenden Fehler und ich habe keine Ahnung, was das bedeutet und wo ich anfangen kann, das Problem zu debuggen. Hat jemand eine Idee, warum dieser Fehler auftritt?Angular AOT Build: Interner Fehler: unbekannter Bezeichner undefined

Abhängigkeiten

"@angular/animations": "^4.4.4", 
"@angular/common": "^4.4.4", 
"@angular/compiler": "^4.4.4", 
"@angular/core": "^4.4.4", 
"@angular/forms": "^4.4.4", 
"@angular/platform-browser": "^4.4.4", 
"@angular/platform-browser-dynamic": "^4.4.4", 
"@angular/router": "^4.4.4", 
"@ngx-translate/core": "^8.0.0", 
"@ngx-translate/http-loader": "^2.0.0", 
"core-js": "^2.5.1", 
"font-awesome": "^4.7.0", 
"primeng": "^4.2.1", 
"quill": "^1.3.2", 
"rxjs": "^5.4.3", 
"zone.js": "^0.8.18" 

Fehler

ERROR in Error: Internal error: unknown identifier undefined 
at Object.importExpr$$1 [as importExpr] (...\node_modules\@angular\compiler\bundles\compiler.umd.js:24211:23) 
at tokenExpr (...\node_modules\@angular\compiler\bundles\compiler.umd.js:18577:39) 
at providerDef (...\node_modules\@angular\compiler\bundles\compiler.umd.js:18480:20) 
at ...\node_modules\@angular\compiler\bundles\compiler.umd.js:18697:77 
at Array.map (<anonymous>) 
at NgModuleCompiler.compile (...\node_modules\@angular\compiler\bundles\compiler.umd.js:18697:44) 
at AotCompiler._compileModule (...\node_modules\@angular\compiler\bundles\compiler.umd.js:24144:32) 
at ...\node_modules\@angular\compiler\bundles\compiler.umd.js:24056:66 
at Array.forEach (<anonymous>) 
at AotCompiler._compileImplFile (...\node_modules\@angular\compiler\bundles\compiler.umd.js:24056:19) 
at ...\node_modules\@angular\compiler\bundles\compiler.umd.js:23969:87 
at Array.map (<anonymous>) 
at AotCompiler.emitAllImpls (...\node_modules\@angular\compiler\bundles\compiler.umd.js:23969:52) 
at CodeGenerator.emit (...\node_modules\@angular\compiler-cli\src\codegen.js:42:46) 
at ...\node_modules\@angular\compiler-cli\src\codegen.js:33:61 
at <anonymous> 
at process._tickCallback (internal/process/next_tick.js:188:7) 

Antwort

1
definiert ist

Dieser Teil der Anwendung das Problem verursacht :

export function windowFactory(): any { 
    return window; 
} 

providers: [{ 
    provide: Window, 
    useFactory: windowFactory 
}], 

Github: This fails with AoT compiler in Angular CLI, because Window (the browser window) is an interface

+0

Hallo, was hast du gemacht, um die Fabrik im Anbieter zu reparieren? – Cristiano

+1

@Injectable() Export Klasse WindowWrapper erstreckt Fenster { } Exportfunktion getWindow() {return \t Fenster; } – im4ever

0

Überprüfen Sie Ihre Vorlagen vielleicht verwendet eine Variable in der Vorlage, die in der Komponente nicht

0

Hatte den gleichen Fehler beim Versuch, anstelle einer Injektion Token Datum für die Injektion bereitzustellen.

Also habe ich:

providers: [ { provide: Date, useValue: new Date() } ]

und änderte es zu

providers: [ { provide: NOW, useValue: new Date() }, ],

wo NOW im Dienst definiert ist, wie diese

davon abhängt

export const NOW = new InjectionToken<Date>('now');

Alle dokumentiert auf der Angular site.

Verwandte Themen