Как показать исходный код TypeScript в трассировках стека, вызываемых функцией Firebase Cloud? - PullRequest
1 голос
/ 06 августа 2020

У меня есть набор облачных функций, которые выполняют 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.

enter image description here

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 для создания чего-то более полезного? Если нет, то каков наилучший метод / рабочий процесс?

1 Ответ

1 голос
/ 06 августа 2020

Вы можете использовать модуль source-map-support . Просто установите модуль с помощью npm, затем поместите одну строку кода вверху вашего индекса. js.

require('source-map-support').install();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...