Минификация (Source Maps)

После сборки и минификации имена функций и номера строк в стеке могут мало говорить об исходном коде. Загрузите source maps, чтобы Tracer мог восстановить исходные имена и места ошибок.

Загружайте source maps для каждой версии приложения, ошибки которой вы хотите анализировать.

Рекомендации

Пути к файлам в архиве должны совпадать с путями в стектрейсе, без учёта хоста.

Например, путь до файла выглядит так:

Error at (https://some-host.ru/someFolder/someScript.hash.js)

Значит, в архиве с сорсмапами должна быть структура:

someFolder - someScript.hash.js.map

Используйте то же versionName, что и в конфигурации модуля отправки JS SDK. versionCode необязателен; если вы задаёте его явно, значения при отправке событий и source maps должны совпадать. Загрузка source maps выполняется отдельным пакетом @apptracer/sourcemap в Node.js, вне браузерного приложения.

Вариант 1

Устанавливаем npm модуль:

npm install @apptracer/sourcemap --save-dev

После сборки отправляем сорсмапы:

const { uploadSourceMap } = require('@apptracer/sourcemap'); // sourcemapsPath — папка с source maps; все .map-файлы попадут в архив. uploadSourceMap(sourcemapsPath, { sourcemapToken: PLUGIN_TOKEN, // pluginToken из настроек проекта в Tracer versionName: VERSION_NAME, // версия приложения (строка), как в настройках SDK }).catch((error) => { console.error(error); process.exitCode = 1; });

uploadSourceMap() возвращает Promise<void>, который завершается после ответа сервера. При ошибке Promise отклоняется.

В примерах ошибка загрузки устанавливает код завершения процесса 1, чтобы сборка в CI завершилась с ошибкой.

Вариант 2

В переменной окружения PLUGIN_TOKEN задайте pluginToken из настроек проекта в Tracer, а в VERSION_NAME — ту же версию приложения, что и в настройках SDK. Замените build/sourcemaps на путь к вашей папке с source maps:

pushd 'build/sourcemaps' zip -9 -r file.zip . -i '*.map' echo 'Заливаем sourcemaps...' curl \ -F sourcemapToken=${PLUGIN_TOKEN} \ -F versionName=${VERSION_NAME} \ -F file=@file.zip \ https://plugin-api.apptracer.ru/api/sourcemap/upload rm file.zip popd