web-dev-qa-db-ja.com

Angular 9:NullInjectorError:CompilerFactoryのプロバイダーがありません

アプリをブラウザーprod/aotモードで実行しているときにメッセージを取得します。以下は私のmain-aot.tsです

Uncaught NullInjectorError:StaticInjectorError(Platform:core)[CompilerFactory]:NullInjectorError:CompilerFactoryのプロバイダーがありません!

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { platformBrowser } from '@angular/platform-browser';
//import { AppModuleNgFactory } from './app/app.module.ngfactory';
import { AppModule } from './app/app.module';

enableProdMode();

// tslint:disable-next-line:no-console
/*platformBrowser().bootstrapModuleFactory(AppModuleNgFactory).catch(err => {
    console.log('CANNOT LOAD AOT MODULE')
    console.dir(AppModuleNgFactory);
    console.error(err)
});*/
platformBrowser().bootstrapModule(AppModule).catch(err => {
    console.log('CANNOT LOAD AOT MODULE')
    console.dir(AppModule);
    console.error(err)
});
2
Rahul Kumar

Angular 9でIvyが有効になっている場合に必要になるため、 `` `ngcc``を実行していなかったため、このエラーが発生しました。これを修正するには、package.jsonスクリプトに以下を追加します:

"postinstall": "ngcc"

次にそれを実行しました:

npm run postinstall

また、次のbootstrapコードで十分でした。AOTを有効にした場合、platformBrowserDynamicは必要ありません。

 platformBrowser().bootstrapModule(AppModule)
0
parliament