ClojureScript поддерживает исходные карты. По умолчанию компилятор ClojureScript отправляет файлы исходных карт только для сборок разработки. Основываясь на вашем описании, ваш файл ClojureScript был скомпилирован для производства. Существует два способа решения вашей проблемы:
- создание исходных карт для производственной сборки,
- включение режима отладки для производственной сборки (рекомендуется).
Создание исходных карт для производственной сборки
Поскольку вы запрашиваете исходные карты, вот как их получить. Если у вас есть доступ к исходному коду, вы можете установить соответствующий параметр компилятора, чтобы включить исходные карты и для производственной сборки:
- , если вы используете
shadow-cljs
, вы можете найти пример в Опции компилятора Документация. - Если вы используете
cljsbuild
, вы можете найти пример в Исходные карты Документация.
Вот минимальный конфигурация для включения исходных карт в производственном режиме:
{:builds {:app {:target :browser
:release {:compiler-options {:source-map true}}}}}
{:cljsbuild {:builds [{:id "production"
:compiler {:optimizations :advanced
:source-map true}}]}}
Включение режима отладки для производственной сборки (рекомендуется)
Компилятор ClojureScript также получил функцию под названием :pseudo-names
, предназначенную для решения этой указанной c проблемы. Из документации ClojureScript :
Измените свою производственную сборку, чтобы использовать две дополнительные опции (компилятора) :pseudo-names true
и :pretty-print true
. Теперь ваша ошибка покажет имя, которое соответствует имени в исходном источнике.
То же, что и выше, вот пример:
{:cljsbuild {:builds [{:id "production-debug"
:compiler {:optimizations :advanced
:pseudo-names true
:pretty-print true}}]}}
- Для
shadow-cljs
вы можете напрямую запустить:
shadow-cljs release app --debug
Если у вас нет доступа к исходному коду, было бы разумнее обратиться напрямую к сопровождающему. Режим производственной сборки ClojureScript создает компактный код, который должен быть как можно меньшим и максимально быстрым, чтобы его не читали и не отлаживали люди.