如果我使用
生成 sveltekit 应用程序骨架npm create svelte@latest lineno
cd lineno
npm install
然后使用一个简单的处理程序创建一个钩子处理程序脚本,我自己会生成一个错误,我得到错误的行号(4而不是2):
export const handle = async ({ event, resolve }) => {
console.log(new Error("My error").stack)
return await resolve(event);
}
Error: My error
at Object.handle (/erikor/Documents/Business/lineno/src/hooks.server.js:4:15)
(有趣的是,正如人们所期望的那样,运行时捕获的实际代码错误会报告正确的行号。)
为什么创建新错误时的堆栈跟踪行号与代码中存在导致抛出错误的错误时的堆栈跟踪行号不同?有没有办法获得正确的行号?
此问题的 Github 问题:https://github.com/sveltejs/kit/issues/10138