Оптимизатор сборки Angular избавится от функции экспорта HighCharts - PullRequest
0 голосов
/ 29 апреля 2019

Я использую пакет компании npm, который предоставляет компоненту гистограммы с правильными цветами и функцией экспорта. Когда я использую эту гистограмму в своем проекте, все будет работать нормально, пока я не соберу проект с buildOptimizer на. Есть ли способ остановить процесс сборки, отменив функцию экспорта без отключения buildOptimizer? У меня есть доступ к пакету npm моей компании.

Компонент линейчатой ​​диаграммы в пакете NPM:

import { Component, OnInit, Directive, ViewChild, Input, AfterViewInit, Output, EventEmitter } from '@angular/core';
import { IBarChartSeries } from '../../../interfaces/IChartSeries';
import * as Highcharts from 'highcharts';
import { HighchartsChartComponent } from 'highcharts-angular';
import ExportingModule from 'highcharts/modules/exporting'; //<--- Line 1
ExportingModule(Highcharts); //<--- Line 2

@Component({
  selector: 'basf-bar-chart',
  templateUrl: './bar-chart.component.html',
  styleUrls: ['./bar-chart.component.scss']
})
export class BarChartComponent implements OnInit, AfterViewInit {
...
}

Как видите, для экспорта нужны только две строки

Когда я теперь импортирую пакет npm в свой проект и использую BarChartComponent, диаграмма выглядит следующим образом:

Chart

Когда я собираю его с --prod, функция экспорта исчезает

1 Ответ

1 голос
/ 29 апреля 2019

Скопировано как есть из документации на angular-highcharts . Поскольку он объясняет и содержит пример кода для импорта функции экспорта.

Чтобы использовать модули Highcharts, вы должны импортировать их и предоставить в фабрика (требуется для aot) .

Список доступных модулей вы можете найти в папке highcharts ls -la node_modules / highcharts / modules.

Подсказка: Highcharts-more является исключением, этот модуль находится в корневой папке. Не забудьте использовать модули с суффиксом .src, минимизированные старшие модули не импортируются.

Пример:

// app.module.ts
import { ChartModule, HIGHCHARTS_MODULES } from 'angular-highcharts';
import * as more from 'highcharts/highcharts-more.src';
import * as exporting from 'highcharts/modules/exporting.src';

@NgModule({
  providers: [
    { provide: HIGHCHARTS_MODULES, useFactory: () => [ more, exporting ] } // add as factory to your providers
  ]
})
export class AppModule { }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...