EdgeOne
在腾讯 EdgeOne 上按 Node.js 运行时流程部署 MuseMVP。
本指南将带你在 腾讯 EdgeOne 上部署 MuseMVP,整体流程与 Vercel 部署非常接近。
前置条件
需要 EdgeOne 账号,并已开通目标 Git 仓库的访问授权。
配置流程
环境变量说明
在 EdgeOne 项目设置中导入 .env 变量,并保持以下策略:
DATABASE_CONNECTION_STRATEGY="database_url_first"关于数据库连接策略
EdgeOne 部署走 Node.js 运行时路径,推荐固定使用 database_url_first,与本地及 Vercel 行为保持一致。
部署上线
在 EdgeOne 控制台触发首次部署,后续可由绑定分支推送自动触发发布。
问题排查
绝大多数部署异常来自环境变量缺失或域名配置不一致。
Node 版本导致构建失败
在 EdgeOne 构建设置中将 Node.js 版本设置为 22.x。
登录后 Session 立即丢失
检查 NEXT_PUBLIC_SITE_URL 是否与 EdgeOne 实际生产域名完全一致。
数据库连接失败
确认 DATABASE_URL 可被 EdgeOne 运行时访问,且数据库供应商要求的 SSL 参数已正确配置。
Cloud SSR Node 包超过 128MiB
EdgeOne 会把 standalone 产物、server-handler 与 Cloud SSR Node 函数一起计入体积。仅配置 outputFileTracingExcludes 往往不够:pnpm 下 node_modules/next 常为符号链接,平台打包时会展开为完整的 next 包(约 150MB)。
根目录 .npmrc 需包含 public-hoist-pattern[]=*(EdgeOne OpenNext 插件要求)。postbuild 会物化 standalone 内的 next 并仅按 denylist 删除 webpack、babel、devtools 等构建期目录(不能用 allowlist 删 compiled 下其它包,否则运行时会缺 find-up 等模块),并配合 next.config.mjs 中的 outputFileTracingExcludes。
本地验证:
DATABASE_CONNECTION_STRATEGY=database_url_first pnpm run build
# Windows PowerShell 查看 server-handler 体积(需先 edgeone pages build)
(Get-ChildItem .edgeone/server-handler -Recurse -File | Measure-Object Length -Sum).Sum / 1MB若仍超限,在 EdgeOne 构建日志对应目录执行 du -h -d 3 | sort -rh | head -50,把最大的 node_modules 路径补充进 outputFileTracingExcludes 或 prune-standalone-for-edgeone.cjs(勿删除 @vercel,运行时需要 routing-utils)。