Mik*_*maa 6 javascript express typescript svelte sveltekit
我正在使用适配器节点检查 SvelteKit SSR 服务器的日志。
我已经自定义了server.js使用Express 而不是 Polka,但不确定这是否重要。
我认为,当fetch()尝试从后端 API 读取数据并由于某种原因失败时,会出现明显的错误。
这是我使用的控制台输出docker:
frontend | TypeError: fetch failed
frontend | at fetch (file:///app/build/handler.js:17895:14)
frontend | at async Object.fetch (file:///app/build/server/index.js:2273:12)
frontend | at async fetch (file:///app/build/server/index.js:991:24)
frontend | at async Promise.all (index 0)
frontend | at async load (file:///app/build/server/chunks/6-0becfa88.js:8:56)
frontend | at async load_data (file:///app/build/server/index.js:1088:16)
frontend | at async file:///app/build/server/index.js:1887:18
Run Code Online (Sandbox Code Playgroud)
该堆栈跟踪无法使用,因为它缺少调用的函数/源代码是什么的信息fetch()。不确定这是因为 Node.js / Express 的工作方式,还是因为堆栈的某些部分缺乏 TypeScript 源映射支持或其他原因。SvelteKit 项目有数十个被调用的函数,load()因为每个路由器端点都有这些函数。
有什么方法可以使这些错误以及 SvelteKit 错误处理总体上更具描述性 - 例如显示映射到其 TypeScript 源文件的正确调用者、失败的页面名称、失败的 URL 等等fetch()?这将有助于诊断失败的 API 调用可能出现的问题的根本问题。
问题可能是缺少sourcemap。
当 SvelteKit 构建你的应用程序时,它会将你的代码分成几个块,这会导致错误堆栈跟踪不可用。
有一种方法可以再次启用源映射,您可以在您的项目中尝试一下,看看它是否有效。
vite.config.xx文件,添加以下配置:const config = {
...
build:{
sourcemap: true // Config vite to generate sourcemap when bundling.
},
...
}
Run Code Online (Sandbox Code Playgroud)
sourcemapflag,例如:node index.js --enable-source-maps
Run Code Online (Sandbox Code Playgroud)
这应该使您的堆栈跟踪指向您的src而不是build. 您可以尝试检查您的项目是否仍在打印无意义的堆栈跟踪。
| 归档时间: |
|
| 查看次数: |
3219 次 |
| 最近记录: |