Я столкнулся с некоторыми странными проблемами с gulp-sourcemaps и gulp-uglify, работающими вместе, в основном, мы используем gulp-uglify для минимизации нашего кода и gulp-sourcemaps для создания исходной карты проекта для отладки кода JS на консоль.
Итак, сегодня во время отладки я заметил, что Google Chrome, похоже, выполнял оператор if, даже если я знал, что условие не возвращает истинное значение, у меня было такое if, как это if ('string-A' === 'string -B') { image.onerror = null Итак, я добавил точку останова при назначении onerror, и хром приостановил там мой код. Очень странный случай.
Я начал отладку, поэтому я изменил исходный код для мини-файла, чтобы проверить, не вызывает ли минимизированный код проблему, это блок минимизированного кода:
л === я && я !== т ? о ? a.src = n : e(a) : l === n ? e(a) : l === t && (a.onerror = null)
Я не вижу здесь никаких проблем, я проверил несколько новых точек останова, и выделенный фрагмент кода никогда не выполняется, потому что l === t извлекает false, как и должно быть. Затем я снова использовал исходный файл, чтобы убедиться, что значение onerror никогда не менялось для изображения, как я думал, поэтому, похоже, это ошибка ядра Chrome при попытке сопоставить уменьшенный файл с источником. Кажется, что Chrome останавливается в случайном месте.
Есть ли способ избежать этих проблем? Я спрашиваю об этом, потому что нам потребовалось много времени на тестирование, и на самом деле результат тот же, мы просто подтвердили, что это не проблема на нашей стороне.