Rah*_*mar 5 angular angular-cli-v9
在浏览器 prod/aot 模式下运行应用程序时获取消息。下面是我的 main-aot.ts
未捕获的 NullInjectorError: StaticInjectorError(Platform: core)[CompilerFactory]: NullInjectorError: No provider for 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)
});
Run Code Online (Sandbox Code Playgroud)
我收到这个错误是因为当 Ivy 启用时,我没有像现在要求的 Angular 9 那样运行 ```ngcc``。所以为了解决这个问题,我在 package.json 脚本中添加了以下内容:
"postinstall": "ngcc"
Run Code Online (Sandbox Code Playgroud)
然后运行它:
npm run postinstall
Run Code Online (Sandbox Code Playgroud)
此外,以下引导代码就足够了,启用 AOT 时不需要 platformBrowserDynamic:
platformBrowser().bootstrapModule(AppModule)
Run Code Online (Sandbox Code Playgroud)
小智 1
在带有ivy的Angular 9中,不再有ngFactory文件,你不再需要main-aot.ts,只需要main.ts
platformBrowserDynamic()
.bootstrapModule(AppModule)
.catch(err => console.error(err));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6024 次 |
| 最近记录: |