为什么 sveltekit 应用程序中的错误堆栈跟踪中的行号错误?

eri*_*kor 5 javascript logging stack-trace line-numbers sveltekit

如果我生成一个 sveltekit 应用程序骨架

npm create svelte@latest lineno
cd lineno
npm install
Run Code Online (Sandbox Code Playgroud)

然后使用一个简单的处理程序创建一个钩子处理程序脚本,我自己会生成一个错误,我得到错误的行号(4而不是2):

export const handle = async ({ event, resolve }) => {
  console.log(new Error("My error").stack)
  return await resolve(event);
}
Run Code Online (Sandbox Code Playgroud)
export const handle = async ({ event, resolve }) => {
  console.log(new Error("My error").stack)
  return await resolve(event);
}
Run Code Online (Sandbox Code Playgroud)

(有趣的是,正如人们所期望的那样,运行时捕获的实际代码错误会报告正确的行号。)

为什么创建新错误时的堆栈跟踪行号与代码中存在导致抛出错误的错误时的堆栈跟踪行号不同?有没有办法获得正确的行号?