今天遇到个sentry错误告警,只有min.js的报错的行数和列数,想通过sourcemap找到源代码的对应的文件,行数和列数,还真的可以:
const SourceMap = require('source-map');
const fs = require('fs');
const data = fs.readFileSync('./xx.js.map').toString();
new SourceMap.SourceMapConsumer(data).then((consumer) => {
const line = 2;
const column = 5027;
const pos = consumer.originalPositionFor({ line, column });
console.log(pos)
console.log(
consumer.sourceContentFor(pos.source)
.split('\n')
.splice(Math.max(0, pos.line - 10), pos.line + 10)
.join('\n')
)
})
Top comments (0)