MuseMVP 文档

EdgeOne

在腾讯 EdgeOne 上按 Node.js 运行时流程部署 MuseMVP。

本指南将带你在 腾讯 EdgeOne 上部署 MuseMVP,整体流程与 Vercel 部署非常接近。

前置条件

需要 EdgeOne 账号,并已开通目标 Git 仓库的访问授权。

配置流程

导入代码仓库

在 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 往往不够:pnpmnode_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 路径补充进 outputFileTracingExcludesprune-standalone-for-edgeone.cjs(勿删除 @vercel,运行时需要 routing-utils)。