Angular:如何导入 JitCompilerFactory?

Dmi*_*hik 1 aot angular angular-compiler angular-dynamic-components

如果我使用AOT编译动态编译将不可能。所以我需要将编译器加载到浏览器。那么如何加载呢?如果我使用

import { JitCompilerFactory } from '@angular/compiler';
Run Code Online (Sandbox Code Playgroud)

但是,导入后JitCompilerFactory出现以下错误:

“在 'angular/compiler' 中找不到导出 'JitCompilerFactory'

那么我现在需要从'angular/platform-browser-dynamic'动态编译中导入它是对的吗?

Nar*_*arm 6

你需要像这样导入JitCompilerFactory到你的app.module.ts 中

import {Compiler, COMPILER_OPTIONS, CompilerFactory} from '@angular/core';
import {JitCompilerFactory} from '@angular/platform-browser-dynamic';
export function createCompiler(compilerFactory: CompilerFactory) {
  return compilerFactory.createCompiler();
}



@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    BrowserModule
  ],
  providers: [
    {provide: COMPILER_OPTIONS, useValue: {}, multi: true},
    {provide: CompilerFactory, useClass: JitCompilerFactory, deps: [COMPILER_OPTIONS]},
    {provide: Compiler, useFactory: createCompiler, deps: [CompilerFactory]}
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

在这里,我创建了一个完整的StackBlitz 演示,其中包含一个动态组件,如果你想在那里玩的话。

  • 嗨@Narm,这是同一主题。您还在进行动态编译。事实上,我刚刚从 StackBlitz 下载了您的代码并运行了“ngserve --aot”,但它不起作用。它向我展示了上面的错误。 (3认同)