У меня есть набор облачных функций, которые выполняют CRUD-подобные функции для получения отдельного ресурса, списка ресурсов и т. Д. getWidgetByURL
, listWidgets
, deleteWidget
.
Для более широкого контекста , они записываются в один src/service.ts
файл, а src/index.ts
предоставляет набор вызываемых:
import * as functions from 'firebase-functions'
import * as service from './service'
const region = 'europe-west1'
exports.addJob = functions.region(region).https.onCall(async (data, context) => {
try {
functions.logger.debug('addJob called with data', data)
const job = await service.addJob(data.title, data.company,
data.location, data.applyUrl, data.salary, data.tags)
return job
} catch (err) {
functions.logger.error(err)
throw new functions.https.HttpsError('internal', 'internal server error', err)
}
})
Во время цикла разработки я запускаю npm run build
локально для компиляции в JavaScript в целевой lib
каталог. Обратите внимание, что создаются файлы *.map
.
In production, if a runtime error occurs, the stacktrace shown within Firebase console logs shows only the .js files callstack.
введите описание изображения здесь
В процессе отладки необходимо найти ошибку времени выполнения в моем локальном файле lib/service.js
, а затем вручную найти соответствующую строку в соответствующем файле lib/service.ts
исходного кода. Утомительно.
Может ли stacktraces автоматически использовать файлы .map для создания чего-то более полезного? Если нет, то каков наилучший метод / рабочий процесс?