web-dev-qa-db-fra.com

Angular 9: NullInjectorError: Aucun fournisseur de compilateur

Obtenez le message lors de l'exécution de l'application dans le navigateur Prod/Aot. Ci-dessous mes principaux aot.ts

Non capturé NullInjectorError: StaticinjectorError (Platform: Core) [CompilerFactory]: NullInjectorError: Aucun fournisseur de compilateur!

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)
});
4
Rahul Kumar

In angular 9 avec lierre, il n'y a plus de fichiers ngactory, vous n'avez plus besoin de MAIN-AOT.TS, seuls les principaux principaux.

platformBrowserDynamic()
  .bootstrapModule(AppModule)
  .catch(err => console.error(err));
1
Caro

J'ai récemment connu une erreur similaire: NullInjectorError: No provider for CompilerFactory! Après le déploiement de mon serveur distant. J'avais fait une construction automatisée qui construisait le dist/ à l'aide de npm run build --prod Changer cela en ng build --prod travaillé pour moi!

Veuillez vérifier que vos environnements sont en cours d'exécution/construisant l'application à l'aide d'outils similaires.

0
Shimanyi Valentino

J'avais cette erreur parce que je n'utilisais pas `` `` ngcc`` 'comme maintenant avec Angular 9 lorsque Ivy est activé. Pour résoudre ce problème, j'ai ajouté ce qui suit à mon package.json scripts :

"postinstall": "ngcc"

Puis ran ça:

npm run postinstall

De plus, le suivant =bootstrap code était suffisant, la plateformeBrowseerdynamic n'est pas requise avec AOT activé:

 platformBrowser().bootstrapModule(AppModule)
0
parliament