3

我正在使用 bugsnag 进行错误报告。为了显示错误的堆栈跟踪 bugsnag 需要源图,我正在尝试使用此文档将其上传到 bugsnag: 上传源图 github:bugsnag sourcemaps

我已经使用 bugsnag 的上传 API 来为我的 react 应用程序上传 bugsnags 上的源图,然后我正在从我的主机中删除源图。执行此操作后,当我检查 bugsnag sourcemaps 设置时,它会在“源 URL”列中显示缩小的文件 URL。

bugsnag 源图

我收到一条消息:

源映射失败:找不到源映射找不到原始源文件和行号,因为无法从 https://hostname/minifiedFileName.js.map 下载源映射。确保您的源地图可从我们的服务器访问或将其上传给我们。(请注意,上传源地图后不会重新处理事件。)

这是因为上传后我要从构建中删除源映射。我假设上传 API 源地图已上传到 bugsnag,我们不需要将源地图保留在我们的主机上。

我不明白在将源地图上传到 bugsnag 时缺少什么步骤。

我创建了一个文件 process-bugsnag-sourcemaps.js

const { upload } = require('bugsnag-sourcemaps');
const reportBuild = require('bugsnag-build-reporter');
const glob = require('glob');
const fs = require('fs');

function uploadSourceMap(sourceMap) {
  const minifiedFile = sourceMap.replace('.map', '');
  const minifiedFileServerPath = `${minifiedFile.split('/')[2]}/${
    minifiedFile.split('/')[3]
  }/${minifiedFile.split('/')[4]}`;

  return upload({
    apiKey: config.get('BUGSNAG_API_KEY'),
    appVersion,
    overwrite: true,
    minifiedUrl: `${config.get('STATIC_PATH')}${minifiedFileServerPath}`,
    sourceMap,
    minifiedFile,
    projectRoot: __dirname,
    uploadSources: true,
  });
}

/**
 * Find, upload and delete Source Maps
 */
function processSourceMaps() {
  findSourceMaps((error, files) =>
    Promise.all(files.map(uploadSourceMap))
      .then(() => {
        deleteFiles(files);
        notifyRelease();
      })
      .catch(e => {
        console.log(e);
      })
  );
}
processSourceMaps();

这是我引用代码来编写上传功能的文章:上传创建 React App 源映射到 Bugsnag 以便于调试并在之后删除它们以确保安全

为什么源地图没有上传到 bugsnag 上,为什么 bugsnag 试图从我在上传功能中指定的 minfifiedUrl 主机访问源地图?

如果有人指出我错过了哪一步,那就太好了?

我已在 github 存储库中添加了此问题

4

0 回答 0