Я тестирую Highcharts Angular2x Wrapper. Сначала у меня не было проблем с использованием функции Angular CLI (1.6.1) "ng serve" и профилирования с Chrome. Затем я попытался использовать компиляцию вовремя, чтобы увидеть, как это влияет на производительность.
Итак, используя:
ng serve --aot
Я получаю следующую ошибку:
ERROR in Error during template compile of 'AppModule'
Function calls are not supported in decorators but 'ChartModule' was called.
Теперь я знаю, что aot генерирует заводский код для модулей и каким-то образом "превращает" шаблоны в VanillaJS, здесь все немного сложно, и я не мог понять, как ngc собирается генерировать заводский код для модуля, для которого требуется внешняя библиотека.
Я получил этот App.Module.ts:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { ChartModule } from 'angular2-highcharts';
import { AppComponent } from './app.component';
declare var require: any;
export function getHighchartsModule() {
return require('highcharts');
}
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
ChartModule.forRoot(getHighchartsModule) // This causes the error
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Мои зависимости Package.json:
"dependencies": {
"@angular/animations": "^5.0.0",
"@angular/common": "^5.0.0",
"@angular/compiler": "^5.0.0",
"@angular/core": "^5.0.0",
"@angular/forms": "^5.0.0",
"@angular/http": "^5.0.0",
"@angular/platform-browser": "^5.0.0",
"@angular/platform-browser-dynamic": "^5.0.0",
"@angular/router": "^5.0.0",
"angular2-highcharts": "^0.5.5",
"core-js": "^2.4.1",
"rxjs": "^5.5.2",
"zone.js": "^0.8.14"
}
Мои вопросы: есть ли что-нибудь, что я могу сделать здесь, чтобы избежать упомянутой ошибки компиляции? Может ли кто-нибудь объяснить, почему это происходит? (необязательный)