我如何找到moment()构造函数引发了弃用错误

时间:2018-12-20 15:39:27

标签: javascript google-chrome momentjs

在少数地方,我使用moment.js进行各种输入,并将它们转换为矩对象。

在某些地方,我得到了

  

“矩构造器回退到JS日期...”

警告在这里已经被提及很多次了。我知道问题所在和解决方案,但我的问题是如何确定问题所在的moment()的哪个实例。

有没有合理的方法来跟踪哪个实例是有问题的?

注意:还有可能我正在使用的JS库之一以有问题的方式调用moment()-不一定直接在我的代码中。

1 个答案:

答案 0 :(得分:2)

添加一个钩子:

moment.deprecationHandler = () => {debugger}

或将警告升级为错误:

moment.deprecationHandler = (_,msg) => {throw new Error(msg)}

这似乎没有记载。如何找到这个?触发警告时,我在Chrome中看到堆栈跟踪:

> moment('20 Dec 2018')
global.js:293 Deprecation warning: value provided is not in a recognized […]
Error
    at Function.createFromInputFallback (https://momentjs.com/static/js/global.js:320:98)
[…]

查看该函数的内部内容

> moment.createFromInputFallback
ƒ () {
        if (hooks.deprecationHandler != null) {
            hooks.deprecationHandler(null, msg);
        }
        if (firstTime) {
            var args = [];
           …
> moment.deprecationHandler
null