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

如何解决TypeScript版Node.js后端Vercel部署404问题?

解决Vercel部署TypeScript MERN后端404问题

问题核心是Vercel部署时未执行TypeScript编译生成dist文件夹,导致路由找不到目标文件,以下是具体解决步骤:

  • 步骤1:确认package.json的build脚本
    确保package.json中包含正确的编译命令,本地执行npm run build能生成dist文件夹即可:

    {
      "scripts": {
        "build": "tsc",
        "dev": "nodemon src/index.ts",
        "start": "node dist/index.js"
      }
    }
    
  • 步骤2:调整vercel.json配置
    原配置直接指向src/index.ts会导致Vercel仅编译单个文件,而非完整执行TS编译流程。修改配置让Vercel先执行build命令生成dist:

    {
      "version": 2,
      "builds": [
        {
          "src": "package.json",
          "use": "@vercel/node",
          "config": {
            "command": "npm run build"
          }
        }
      ],
      "routes": [
        {
          "src": "/(.*)",
          "dest": "dist/index.js",
          "methods": ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"],
          "headers": {
            "Access-Control-Allow-Origin": "*",
            "Cache-Control": "max-age=0, s-maxage=86400, stale-while-revalidate"
          }
        }
      ]
    }
    
  • 步骤3:配置Vercel项目构建参数
    登录Vercel控制台进入项目:

    1. 进入「Settings」→「General」
    2. 在「Build & Development Settings」区域,将「Build Command」设置为npm run build,「Output Directory」设置为dist
  • 步骤4:验证部署日志
    重新部署后查看日志,确认:

    • 存在tsc执行记录,无编译错误
    • 日志中显示成功生成dist文件夹及index.js文件
  • 额外排查点

    • 确保.gitignore中包含dist(无需提交编译产物到Git,Vercel会在部署时生成)
    • 确认tsconfig.json的outDir和rootDir配置正确,你当前的配置无问题:
      {
        "compilerOptions": {
          "outDir": "./dist",
          "rootDir": "./src"
        }
      }
      

调整完成后重新部署,dist文件夹会出现在部署产物中,根路由即可正常返回内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 01:41:05