Как реализовать отслеживание ошибок в полимере?
Есть ли способ отслеживания ошибок в Polymer?
Проблема в том, что, очевидно, процессы вулканизации и сборки не могут предоставить никаких исходных карт (пожалуйста, исправьте меня, если я ошибаюсь). Это означает, что даже если я поймаю исключение в коде Java-скрипта с вулканизацией, используя глобальный window.onerror
Функция Я не смогу отобразить его обратно и найти фактическое местоположение ошибки в исходных файлах.
любые решения / обходные пути будут высоко оценены.
1 ответ
Вот мое представление о том, что можно сделать. Пожалуйста, предоставьте ваши идеи и решения. Это решение не проверено.
в соответствии с https://github.com/PolymerLabs/polybuild polybuild tool такой же, как:
vulcanize --inline-css --inline-scripts --strip-comments index.html | polyclean | crisper --html index.build.html --js index.build.js
заказ:
1) vulcanize создает один файл в формате html.
2) Polyclean использует uglifyjs внутренне и выполняет некоторую очистку
3) Crisper используется для отделения уже уродливых и минимизированных JS от HTML
насколько я знаю, uglifyjs не работает с html-файлами в качестве входных данных, поэтому polyclean вручную вырезает части кода js ', пропускает его через uglifyjs и вставляет его обратно (надеюсь, я правильно понял, как работает polyclean). Вот почему создание исходных карт в этом контексте бесполезно. моя идея состоит в том, чтобы изменить порядок поликлинов и четче и модифицировать поликлин, чтобы позволить использовать внешние параметры для uglifyjs2:
новый порядок:
1) vulcanize создает один файл в формате html.
2) Crisper используется для отделения отформатированных JS от HTML.
3) Polyclean использует uglifyjs для внутренних целей и выполняет некоторую очистку (в этом случае нам нужно использовать как файлы js, так и файлы html).
Итак, сначала у вас будет html-файл и отформатированный js-файл, и только потом вы можете использовать uglifyjs2(вызов из polyclean или standalone?) С опциями --source-map и --source-map-include-sources. Теперь вы можете отслеживать ваши ошибки, используя созданную исходную карту, которая уже содержит отформатированную копию файла js, созданного на шаге 2.