エラー報告に bugsnag を使用しています。エラーのスタックトレースを表示するには、bugsnag にソースマップが必要です。このドキュメントを使用して bugsnag にアップロードしようとしています: Uploading source map github: bugsnag sourcemaps
bugsnag のアップロード API を使用して、反応アプリの bugsnags にソースマップをアップロードしてから、ホストから sourcemap を削除しています。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 アプリのソース マップを Bugsnag にアップロードし、セキュリティのために後でそれらを削除します。
ソースマップが bugsnag にアップロードされないのはなぜですか? また、bugsnag がアップロード機能で指定した minfifiedUrl ホストからソースマップにアクセスしようとするのはなぜですか?
誰かが私が見逃しているステップを指摘してくれたらうれしいです。
この問題を github リポジトリに追加しました