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

TypeScript MERN应用部署Vercel遇Express服务构建问题求助

解决Vercel部署TypeScript Express后端的问题

核心问题分析

你遇到的问题主要是TypeScript编译路径错误和Vercel配置未正确指向编译后的文件,同时vercel.json的builds配置覆盖项目设置导致警告(该警告不影响功能,配置正确后可忽略)。

步骤1:修正package.json脚本

你的start脚本路径错误,tsc编译后文件会输出到build目录(需确保tsconfig配置正确),修改如下:

"scripts": {
  "build": "tsc",
  "start": "node build/index.js", // 修正路径:指向编译后的index.js
  "dev": "nodemon --watch \"src/**\" --ext \"ts,json\" --exec \"ts-node src/index.ts\""
}

步骤2:确保tsconfig.json配置正确

如果还没有tsconfig.json或配置有误,添加/修改关键配置,保证TypeScript编译后输出到build目录:

{
  "compilerOptions": {
    "outDir": "./build",       // 指定编译输出目录
    "rootDir": "./src",        // 指定源码根目录
    "target": "ES6",
    "module": "CommonJS",
    "strict": true,
    "esModuleInterop": true
  },
  "include": ["src/**/*"],     // 包含所有src下的文件
  "exclude": ["node_modules"]
}

步骤3:修正vercel.json配置

当前vercel.json指向未编译的源码文件且未触发TypeScript编译,修改为:

{
  "version": 2,
  "builds": [
    {
      "src": "package.json",
      "use": "@vercel/node",
      "config": {
        "buildCommand": "npm run build" // 让Vercel执行TypeScript编译命令
      }
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "/build/index.js" // 指向编译后的后端入口文件
    }
  ]
}

额外说明

  • 本地测试:部署前先执行npm run build,再执行npm start,确认后端能正常运行后再推送到Vercel。
  • 关于警告:因vercel.json定义了builds,Vercel项目设置里的构建配置会被忽略,属于正常现象,无需额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:54:55