ASP.NET MVC: ведение журнала ошибок Javascript в производственной среде

Существует несколько библиотек для регистрации ошибок javascript в веб-приложении. Эти библиотеки кажутся полезными во время разработки. Мы можем перехватывать ошибки javascript на глобальном уровне с помощью обработчика widows.onerror.

Все выглядит прекрасно и денди до этого.

Но если мы включим связывание и минимизацию в ASP.NET MVC, станет трудно обнаружить реальную ошибку, поскольку минимизация вызывает переименование переменных и сжатие кода, тем самым изменяя номера строк. Как быть с таким сценарием? Я просмотрел много сообщений, но не нашел удовлетворительного решения. Мы хотим, чтобы разумные ошибки javascripts регистрировались в производственной среде. Любые мысли или предложения по этому поводу?


person Tejas Sutar    schedule 07.08.2015    source источник
comment
Может быть: не использовать минификацию? Если ваш сайт не посещают 10 000 уникальныхновых) посетителей в день, взвесьте разницу, и вы можете обнаружить, что полезное ведение журнала перевешивает крошечную экономию. от минификации.   -  person freedomn-m    schedule 07.08.2015
comment
Прежде всего, если вы получаете ошибки JavaScript, это означает, что ваш код неверен. Во-вторых, зачем регистрировать ошибки из клиентского браузера, это не повлияет на ваш сайт... или ваш сайт тестируется потребителями. Теперь, если вы действительно хотите что-то регистрировать, внедрите механизм отслеживания и сохраните в браузере весь поток действий и журнал с трассировкой стека ошибок, когда ошибка присутствует.   -  person SilentTremor    schedule 07.08.2015
comment
@SilentTremor спасибо за ответ. Не могли бы вы предложить, как реализовать механизм отслеживания, о котором вы говорите?   -  person Tejas Sutar    schedule 07.08.2015


Ответы (1)


Ознакомьтесь с исходными картами JavaScript, которые создают ссылку между вашими исходными скриптами. и уменьшенный скрипт, который поставляется со страницей. Похоже, что кто-то создал расширение для пакетов ASP которые позволяют создавать исходные карты.

Однако даже с исходными картами ошибки, перехваченные из window.onerror, по-прежнему будут содержать минифицированные имена и местоположения. Вам нужно будет написать некоторый код в вашей системе управления ошибками, чтобы применить исходные карты к коду (или сделать это вручную), чтобы увидеть реальные цифры.

Chrome автоматически применит исходные карты к ошибкам в своем отладчике, если они общедоступны для загрузки, но эти значения программно недоступны для захвата ошибок.

Последнее, что следует учитывать, — это использование размещенной службы, которая уже решает эту проблему. Вы можете отправлять отчеты об ошибках в другое место, чтобы они собирали информацию об ошибках и давали вам отчеты/предупреждения о возникновении важных ошибок — и даже переводили ошибку с помощью исходных карт. Я рекомендую (и помог написать) TrackJS.

person Todd Gardner    schedule 08.08.2015