2017-01-03 11 views
5

dostaję ten błąd na moim Ahead-of-time skompilowaną aplikację:kątowa 2 Nie dostawcą dla CompilerFactory

Error: No provider for CompilerFactory! 
    at NoProviderError.BaseError [as constructor] (http://localhost:5050/app.js:2413:26) 
    at NoProviderError.AbstractProviderError [as constructor] (http://localhost:5050/app.js:2612:19) 
    at new NoProviderError (http://localhost:5050/app.js:2651:19) 
    at ReflectiveInjector_._throwOrNull (http://localhost:5050/app.js:4637:22) 
    at ReflectiveInjector_._getByKeyDefault (http://localhost:5050/app.js:4671:28) 
    at ReflectiveInjector_._getByKey (http://localhost:5050/app.js:4625:28) 
    at ReflectiveInjector_.get (http://localhost:5050/app.js:4385:24) 
    at PlatformRef_._bootstrapModuleWithZone (http://localhost:5050/app.js:10924:64) 
    at PlatformRef_.bootstrapModule (http://localhost:5050/app.js:10910:24) 
    at http://localhost:5050/app.js:64873:22 

aplikacji jest zbudowany przy użyciu NGC do generowania .ngfactory pliki, a następnie TSC z innym main plik, aby uzyskać JS, a następnie rollup w/Babel do ukończenia kompilacji. Poniższy przewodnik jest dość szczegółowy.

Oto mój :

import "reflect-metadata"; 

import { enableProdMode } from "@angular/core"; 
import { platformBrowser } from "@angular/platform-browser"; 
import { AppModuleNgFactory } from "./app.module.ngfactory"; 

enableProdMode(); 

platformBrowser().bootstrapModule(<any> AppModuleNgFactory) 
+0

Czy to naprawić? – Scironic

+0

Czy byłeś w stanie to naprawić? Występuję w tym samym problemie. – xaralis

+0

Udało mi się to naprawić za pomocą rozwiązania z @nrobinaubertin. Zamień 'bootstrapModule' na' bootstrapModuleFactory' i już możesz iść. (nie trzeba już "obsadzać") – xaralis

Odpowiedz

2
platformBrowser().bootstrapModule(<any> AppModuleNgFactory) 

Powinny być

platformBrowser().bootstrapModuleFactory(AppModuleNgFactory) 
+0

To tylko typografia TS, aby umożliwić jej kompilację (osobny problem), ale nie ma wpływu na błąd środowiska wykonawczego. –

+0

Czuję, że nie jestem tak piśmienny w Angular, jak ty, ale główny plik ts twojego przewodnika używa tej składni. Jeśli robisz tylko aot (i nie jit), nie rozumiem, dlaczego potrzebujesz dwóch głównych plików. Czy mógłbyś opublikować swój drugi główny plik i swój pakiet.json? – nrobinaubertin

+0

Tak, ważną częścią jest 'bootstrapModuleFactory' zamiast' bootstrapModule'. – xaralis

Powiązane problemy