handsontable numbro 库中的错误,仅在生产构建中发生

Error in handsontable numbro library, which happens only in production build

向我的可操作实例添加一行时出现以下错误:

core.js.pre-build-optimizer.js:15724 ERROR RangeError: toFixed() digits argument must be between 0 and 100 at Number.toFixed () at h (numbro.min.js.pre-build-optimizer.js:1) at numbro.min.js.pre-build-optimizer.js:1

完整错误:

奇怪的是,我只在 ng build -prod(或 --optimization 标志)上得到这个错误。

因此使用调试器很棘手,因为 js 已经编译,但是使用 console.log() 我将它缩小到这个可操作的调用:

hot.alter('insert_row');

在阅读了这个可动手操作的 compilation issue 之后,我正在重构项目以在 tsconfig.json 中启用 strict:true,但事实证明这是相当多的工作。

有没有人遇到过类似的问题?

版本:

我没有在我的代码中的任何地方使用 numbro 库,它纯粹是 handsontable 的依赖项(我的项目中也没有其他库使用它)。

你是对的,它与 Handsontable 版本无关。 v2.1.2 中的依赖项之一 Numbro 引入了与 Webpack TerserPlugin(默认 minfier)的冲突[1]。

Handsontable v7.0.1 将通过降级 numbro 依赖来解决此问题。或者您可以立即安装它:npm i numbro@2.1.1 并且 Handsontable 将使用您的版本。

[1] https://github.com/BenjaminVanRyseghem/numbro/issues/402#issuecomment-471586507