После минимизации моего JavaScript-приложения с помощью плагина Terser веб-пакета эта функция перехвата работает некорректно в браузере
.catch((error)=> {
vm.loginError = true;
vm.loading = false;
if (!error || !error.error){return};
if (error.error.indexOf('user exists')) {
<!-- expecting this line to run when error.error contains "user exists" but this line is never executed -->
vm.emailTakenError = true;
} else {
vm.serverGeneralError = true;
}
});
В этом примере серверная часть отправляет объект ошибки, содержащий свойство error, установленное на "пользователь существует ".
{"status":"error","error_message":"user exists","error":"user exists"}
Браузер должен иметь возможность анализировать объект ошибки и читать error.error, но не может.
Используя не минимизированный код, скрипт работает правильно ибраузер выполняет строку «vm.emailTakenError = true».
В командной строке консоли браузера после минимизации возвращая error.error выдает эту ошибку (Chrome Dev Tools):
Uncaught ReferenceError: ошибка не определена в eval (eval at (signup.ts: 92),: 1: 1)
Как ни странно, используя исходные карты в минимизированном коде в Chrome Dev Tools, консоль может проанализировать ошибку. свойство error, использующее указатель мыши, но не в качестве Watch, ни в окне браузера, ни каким-либо другим методом.
Также загадочно, что эта строка никогда не запускается:
if (!error || !error.error){return};
Код также не работает в Firefox.
Есть ли у меня проблема с минификатором, с кодом или с чем-то еще? Как это решить?