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 中的 \9 是啥?构建失败并出现语法错误