在少数地方,我使用moment.js
进行各种输入,并将它们转换为矩对象。
在某些地方,我得到了
“矩构造器回退到JS日期...”
警告在这里已经被提及很多次了。我知道问题所在和解决方案,但我的问题是如何确定问题所在的moment()
的哪个实例。
有没有合理的方法来跟踪哪个实例是有问题的?
注意:还有可能我正在使用的JS库之一以有问题的方式调用moment()
-不一定直接在我的代码中。
答案 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