TypeScript - JitCompilerFactory אנגולר 5
איך להשתמש ב-JitCompilerFactory באנגלר 5?
ב-angular 4 ייצא '@angular/compiler' את JitCompilerFactory
אבל בקובץ של Angular 5 הוא הועבר ל"@angular/platform-browser-dynamic/src/compiler_factory"
זה הקוד שלי ב-Angular 4
import {CommonModule} from '@angular/common'
import {Compiler, NgModule} from '@angular/core'
import {JitCompilerFactory} from '@angular/compiler'
import {DynamicComponent} from './dynamic.component'
import {DynamicComponentModule} from './dynamic.module'
export function compilerFactory() {
return new JitCompilerFactory([{useDebug: false, useJit: true}]).createCompiler()
}
@NgModule({
imports: [
CommonModule,
],
declarations: [
DynamicComponent
],
exports: [
DynamicComponent
],
providers: [
DynamicComponentModule,
{provide: Compiler, useFactory: compilerFactory}
],
})
export class DynamicModule {
}
איך לגרום לזה לעבוד ב-Angular 5?
תשובה #1
אתה חייב לעדכן את @angular/platform-browser-dynamic לגרסה הכי עדכנית (5.1.0-beta.2) ולקבל את הפקטורי מ:
@angular/platform-browser-dynamic
הבאטה השלישית מביאה 10 תיקוני באגים ותכונה אחת, כלומר: platform-browser-dynamic: יצוא JitCompilerFactory (#20478) (d7a727c), סוגר #20125
- בקשת תכונה בגיטהאב: https://github.com/angular/angular/issues/20125
- דיון בגיטהאב: https://github.com/angular/angular/issues/20154
- למדו עוד על השחרור: https://jaxenter.com/road-to-angular-5-133253.html
אז, אתה לא צריך ליצור את הקומפיילר בעצמך, אתה צריך לתת למזרק לעשות את העבודה כאן :
import {Compiler, COMPILER_OPTIONS, CompilerFactory, NgModule} from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import {JitCompilerFactory} from '@angular/platform-browser-dynamic';
import { AppComponent } from './app.component';
export function createCompiler(compilerFactory: CompilerFactory) {
return compilerFactory.createCompiler();
}
@NgModule({
imports: [BrowserModule],
bootstrap: [AppComponent],
declarations: [AppComponent],
providers: [
{provide: COMPILER_OPTIONS, useValue: {}, multi: true},
{provide: CompilerFactory, useClass: JitCompilerFactory, deps: [COMPILER_OPTIONS]},
{provide: Compiler, useFactory: createCompiler, deps: [CompilerFactory]}
]
})
export class AppModule {}
מצטערים להודיע לך זאת, אך כנראה זה עדיין לא יעבוד משום שהעבודה עדיין בתהליך :
הקרדיט הולך לאנשים האלה: https://github.com/angular/angular/issues/20639#issuecomment-347149868
זה הרג לי את סוף השבוע אז אני מקווה שזה עוזר :) לחיים !
