Handsontable numbro 库中的错误,仅在生产版本中发生

Posted

技术标签:

【中文标题】Handsontable numbro 库中的错误,仅在生产版本中发生【英文标题】:Error in handsontable numbro library, which happens only in production build 【发布时间】:2019-08-21 23:14:47 【问题描述】:

向我的handsontable 实例添加行时出现以下错误:

core.js.pre-build-optimizer.js:15724 错误 RangeError: toFixed() 数字参数必须在 0 到 100 之间 在 Number.toFixed() 在 h (numbro.min.js.pre-build-optimizer.js:1) 在 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,但结果证明这是一项相当大的工作。

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

版本:

Angular 7.2 Handsontable 7.0.0(但问题也发生在 v6 中) 打字稿 3.2.4

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

【问题讨论】:

【参考方案1】:

你是对的,它与 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

【讨论】:

以上是关于Handsontable numbro 库中的错误,仅在生产版本中发生的主要内容,如果未能解决你的问题,请参考以下文章

Handsontable 下拉菜单有多个选择

HandsonTable 中的 \9 是啥?构建失败并出现语法错误

Meteor 错误,未定义 Handsontable

Handsontable 公式#VALUE!错误,即使单元格的公式是正确的

Handsontable 如何手动将单元格设置为无效

Handsontable:jquery 合并标题,水平滚动错误