You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将ExpressJS+TypeScript Node应用部署到Vercel?遇404错误

问题:基于TypeScript-Express-Starter的Node应用部署到Vercel持续404

我正在开发一个基于TypeScript-Express-Starter模板的ExpressJS、TypeScript和Node.js应用,本地通过Nodemon可以正常运行,但部署到Vercel时一直出现404错误。我的Vercel构建配置如下:

  • Build command: npm run build
  • Output Directory: dist
  • Install command: npm install

核心需求:如何让这个本地可运行的Node应用在Vercel上正常运行?


已尝试的解决方案

方案1:部署极简Node应用成功

参考步骤给现有项目添加配置后,成功将一个极简Node应用部署到Vercel。该示例的vercel.json将根路由指向根目录的index.js,且构建配置和我的项目一致,但index.js直接放在根目录而非编译后的dist目录。我曾考虑把编译后的文件移出dist到根目录,但需要提交编译文件,因此未尝试。

方案2:修改vercel.json指向编译文件

将vercel.json配置修改为指向dist/server.js,但部署后依然出现404错误。

方案3:怀疑Express架构兼容性问题

极简示例中把app.listen和app.get写在同一个文件里,是否只有这类极简Express应用才能适配Vercel的无服务器架构,而复杂架构无法兼容?


排查中的疑问与难点

  • Vercel是无服务器架构,无法通过SSH登录服务器调试,难以定位404的具体来源。
  • 尝试用app.on('error', ...)捕获错误,但未找到有效线索。
  • 在Vercel创建新项目时,无法选择Node框架,这是否暗示Vercel与Node.js的兼容性不佳?但极简示例又能正常运行,这点很矛盾。
  • 试过多种vercel.json的配置组合,均无效果;且Vercel文档不推荐使用routes和builds配置,进一步加深了兼容性的疑虑。

最终建议

如果你也尝试将ExpressJS Node应用部署到Vercel,我的建议是:不要这么做!相关资料和社区支持极度匮乏,部署难度远超预期。我最终选择将应用部署到自己的VPS,问题得以解决。

内容的提问来源于stack exchange,提问作者Zeth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 10:45:02