2017-01-23 2 views
4

Als ich auf @angular 2.4.4 umschaltete, fing ich an, den Fehler unten zu bekommen. Wenn ich zu @angular 2.2.1 zurückkehre. Ich kann ohne Probleme bauen.Angular2 CLI Build Prod Fehler: Aufruf der Funktion 'NoOpAnimationDriver', Funktionsaufrufe werden nicht unterstützt

Bei Verwendung von eckigen 2.4.4 kann ich mein Programm immer noch lokal mit "npm start" ausführen.

Nur wenn ich versuche, den Build mit "ng build --prod --aot" auszuführen, bekomme ich den Fehler.

Soweit ich sagen kann, verwende ich nicht "NoOpAnimationDriver" oder "BrowserTestingModule", die beide in dem Fehler referenziert sind.

Ich hoffe, jemand hat diesen Fehler vorher gesehen und könnte mir in der Lage sein, mir eines der folgenden zu sagen: 1. was der Fehler wirklich sagt. 2. warum bekomme ich einen Fehler in Funktionen, die ich nicht verwende. 3. Wie kann ich den Fehler beheben? 4. wo ich nach weiteren Informationen suchen könnte, um solche Fehler zu verstehen.

ERROR in Error encountered resolving symbol values statically. Calling function 'NoOpAnimationDriver', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol AnimationDriver.NOOP in c:/Development/SentriKeyApp/node_modules/@angular/platform-browser/src/dom/animation_driver.d.ts, resolving symbol BrowserTestingModule in c:/Development/SentriKeyApp/node_modules/@angular/platform-browser/testing/browser.d.ts, resolving symbol BrowserTestingModule in c:/Development/SentriKeyApp/node_modules/@angular/platform-browser/testing/browser.d.ts 

ERROR in ./src/main.ts 
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in 'c:\Development\SentriKeyApp\src' 
@ ./src/main.ts 4:0-74 
@ multi main 

ERROR in ./~/@angular/core/src/linker/system_js_ng_module_factory_loader.js 
Module not found: Error: Can't resolve 'c:\Development\SentriKeyApp\src\$$_gendir' in 'c:\Development\SentriKeyApp\node_modules\@angular\core\src\linker' 
@ ./~/@angular/core/src/linker/system_js_ng_module_factory_loader.js 71:15-36 87:15-102 
@ ./~/@angular/core/src/linker.js 
@ ./~/@angular/core/src/core.js 
@ ./~/@angular/core/index.js 
@ ./src/main.ts 
@ multi main 
+0

, welche Version von 'Winkel cli' zu vermeiden, verwenden Sie? – shusson

+0

Momentan benutze ich 1.0.0-beta.26. Vorher habe ich 1.0.0-beta.21 –

+0

benutzt. In der Vergangenheit hatte ich ähnliche Fehler, wenn Bibliotheksversionen nicht mit 'angular-cli' Standardwerten übereinstimmten. Versuchen Sie, ein neues Projekt mit 'ng init' zu erstellen und vergleichen Sie es mit' 'package.json' 'mit Ihrem Projekt. – shusson

Antwort

1

Der folgende Fehler ein vor der Zeit Compiler-Fehler ist.

Error: Error encountered resolving symbol values statically. Calling function ‘declarations’, function calls are not supported. Consider replacing the function or lambda with a reference to an exported function

Bevor:

const declarations =() => [ 
    SomeComponent 
]; 
@NgModule({ 
    declarations: declarations(), 
}) 
export class SomeModule {} 

Nach:

export function declarations() { 
    return [ 
    SomeComponent 
    ]; 
} 
@NgModule({ 
    declarations: declarations(), 
}) 
export class SomeModule {} 

https://medium.com/@isaacplmann/making-your-angular-2-library-statically-analyzable-for-aot-e1c6f3ebedd5#.let72omre

Mit -prod mit dem ng build jetzt verwendet standardmäßig den Ahead of Time-Compiler. Dies ist seit Beta.28 in Kraft. Siehe hier:

https://github.com/angular/angular-cli/blob/master/CHANGELOG.md

1

ng build --prod Anrufe --aot auch und sieht aus wie das Problem mit ihm verbunden ist.

Versuchen ng build --prod --aot false zu laufen, um Ahead-of-Time Compilation

Verwandte Themen