Astro SSR项目Netlify部署失败:预渲染静态路由报错
Astro SSR模式在Netlify构建报错:
Cannot read properties of undefined (reading 'length') 我有一个Astro项目,未开启SSR时在Netlify部署正常。切换到SSR模式后执行新构建时出现错误,报错信息为Cannot read properties of undefined (reading 'length'),具体构建日志如下:
9:48:06 AM: 08:48:06 AM [build] output target: server 9:48:06 AM: 08:48:06 AM [build] deploy adapter: @astrojs/netlify/functions 9:48:06 AM: 08:48:06 AM [build] Collecting build info... 9:48:06 AM: 08:48:06 AM [build] Completed in 1.47s. 9:48:06 AM: 08:48:06 AM [build] Building server entrypoints... 9:48:09 AM: 08:48:09 AM [build] Completed in 3.11s. 9:48:09 AM: 9:48:09 AM: building client 9:48:10 AM: Completed in 1.30s. 9:48:10 AM: 9:48:10 AM: 9:48:10 AM: prerendering static routes 9:48:10 AM: error Cannot read properties of undefined (reading 'length') 9:48:10 AM: File: 9:48:10 AM: /opt/build/repo/node_modules/astro/dist/core/build/generate.js:66:20 9:48:10 AM: Code: 9:48:10 AM: 65 | const ssrEntryURL = new URL("./" + serverEntry + `?time=${Date.now()}`, outFolder); 9:48:10 AM: > 66 | const ssrEntry = await import(ssrEntryURL.toString()); 9:48:10 AM: | ^ 9:48:10 AM: 67 | const builtPaths = /* @__PURE__ */ new Set(); 9:48:10 AM: 68 | if (opts.settings.config.output === "server") { 9:48:10 AM: 69 | for (const pageData of eachPrerenderedPageData(internals)) { 9:48:10 AM: Stacktrace: 9:48:10 AM: TypeError: Cannot read properties of undefined (reading 'length') 9:48:10 AM: at file:///opt/build/repo/.netlify/functions-internal/chunks/pages/all.bcf310be.mjs:1556:17 9:48:10 AM: at ModuleJob.run (node:internal/modules/esm/module_job:193:25) 9:48:10 AM: at async Promise.all (index 0) 9:48:11 AM: Failed during stage 'building site': Build script returned non-zero exit code: 2 (https://ntl.fyi/exit-code-2) 9:48:10 AM: at async ESMLoader.import (node:internal/modules/esm/loader:530:24) 9:48:10 AM: at async generatePages (file:///opt/build/repo/node_modules/astro/dist/core/build/generate.js:66:20) 9:48:10 AM: at async staticBuild (file:///opt/build/repo/node_modules/astro/dist/core/build/static-build.js:85:7) 9:48:10 AM: at async AstroBuilder.build (file:///opt/build/repo/node_modules/astro/dist/core/build/index.js:122:5) 9:48:10 AM: at async AstroBuilder.run (file:///opt/build/repo/node_modules/astro/dist/core/build/index.js:153:7) 9:48:10 AM: at async build (file:///opt/build/repo/node_modules/astro/dist/core/build/index.js:37:3) 9:48:10 AM: at async runCommand (file:///opt/build/repo/node_modules/astro/dist/cli/index.js:168:14) 9:48:10 AM: at async cli (file:///opt/build/repo/node_modules/astro/dist/cli/index.js:203:5) 9:48:10 AM: 9:48:10 AM: "build.command" failed
我的astro.config配置如下:
import { defineConfig } from 'astro'; import netlify from "@astrojs/netlify/functions"; export default defineConfig({ output: 'server', adapter: netlify() });
同时我已在Netlify的「站点设置 > 构建与部署 > 后处理 > 预渲染」中启用了预渲染功能。多次查阅Astro和Netlify文档,未发现配置遗漏,请求帮助排查该问题。
内容的提问来源于stack exchange,提问作者RogerX
相关产品推荐
相关产品推荐

