我正在使用 bugsnag 进行错误报告。为了显示错误的堆栈跟踪 bugsnag 需要源图,我正在尝试使用此文档将其上传到 bugsnag: 上传源图 github:bugsnag sourcemaps
我已经使用 bugsnag 的上传 API 来为我的 react 应用程序上传 bugsnags 上的源图,然后我正在从我的主机中删除源图。执行此操作后,当我检查 bugsnag sourcemaps 设置时,它会在“源 URL”列中显示缩小的文件 URL。
我收到一条消息:
源映射失败:找不到源映射找不到原始源文件和行号,因为无法从 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 存储库中添加了此问题