使用 Highcharts 的本地 Angular 库在生产模式下中断

Local Angular library using Highcharts breaks in production mode

我写了一个 Angular 库来包装 Highcharts 以满足我的需要。

在dev模式下本地使用时运行良好,但prod模式的优化似乎打破了它。

问题来自Highcharts 模块需要添加一些功能,例如添加新的图表类型(即TreeMap)。这些模块似乎没有在 prod 模式下加载,导致 Highcharts 错误 (https://www.highcharts.com/errors/17/)。

这是我的第一个 Angular 库,所以配置一定是错误的,但我找不到问题所在。

我在这个 repo 中推送了问题的最小重现:https://github.com/Korbraan/angular-library-opti-bug

首先使用 ng build charts 构建库,然后尝试使用 ng serve --prod 提供它。它坏了,但它适用于 ng serve.

要解决此问题,您必须在构造函数中移动模块初始化:

  constructor() {
    const self = this;

    Treemap(self.Highcharts);
    Heatmap(self.Highcharts);
  }