const fs = require('fs'); const { SourceMapConsumer } = require('source-map'); (async () => { const mapJson = await (await fetch('http://127.0.0.1:8099/main.dart.js.map')).text().catch(()=>null); if (!mapJson) { console.log('无 sourcemap'); return; } const smc = await new SourceMapConsumer(mapJson); // 解析 299:254 (line:col) const pos = smc.originalPositionFor({ line: 299, column: 254 }); console.log('299:254 →', pos.source, pos.line + ':' + pos.column, '|', pos.name); // 也试 299 的前后几行 for (const c of [200, 100, 50]) { const p = smc.originalPositionFor({ line: 299, column: c }); if (p.source) console.log(`299:${c} →`, p.source.split('/').slice(-2).join('/') + ':' + p.line); } })();