Как мне найти, какой конструктор moment () выбрасывает ошибку устаревания? - PullRequest
0 голосов
/ 20 декабря 2018

В нескольких местах я использую moment.js, чтобы взять различные входные данные и превратить их в мгновенный объект.

В некоторых местах я получаю конструктор моментов

"Возвращается к JS Date ... "

предупреждение, которое упоминалось здесь так много раз.Я понимаю проблему и решение, но мой вопрос состоит в том, как определить , какой экземпляр использования moment() является проблемой.

Есть ли какой-либо разумный способ отследить, какой экземплярпроблемный?

Примечание: Также возможно, что одна из библиотек JS, которую я использую, вызывает проблемный способ moment() - это не обязательно прямо в моем коде.

1 Ответ

0 голосов
/ 20 декабря 2018

Добавить хук:

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
...