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

Node Express+TypeScript部署Vercel未执行构建命令的问题求助

解决Vercel部署Node.js/Express/TypeScript项目时未执行build命令的问题

我有一个基于Node.js、Express和TypeScript开发的项目,本地构建会生成dist文件夹,但在Vercel部署时,系统没有执行配置的build命令,只能先本地构建再上传dist文件夹才能完成部署。当前的vercel.json配置如下:

{    
  "version": 2,    
  "buildCommand": "yarn build",    
  "devCommand": "yarn dev",    
  "outputDirectory": "dist",    
  "builds": [        
    {            
      "src": "dist/index.js",            
      "use": "@vercel/node"        
    }      
  ],    
  "routes": [        
    {            
      "src": "/(.*)",            
      "dest": "dist/index.js"        
    }    
  ]
}

问题原因

当前配置中builds字段的src指向了dist/index.js——这是构建后才会生成的文件。Vercel的构建流程会先检查builds指定的源文件是否存在,若不存在,会直接跳过buildCommand的执行,导致TypeScript代码没有被编译成dist文件夹。

修正方案

调整builds的src指向源码的入口文件(而非构建后的文件),让Vercel先执行构建命令生成dist,再处理Node.js部署配置。同时可以在builds的config中明确指定安装和构建命令,强化执行逻辑。

修正后的vercel.json配置:

{
  "version": 2,
  "buildCommand": "yarn build",
  "devCommand": "yarn dev",
  "outputDirectory": "dist",
  "builds": [
    {
      "src": "src/index.ts",
      "use": "@vercel/node",
      "config": {
        "installCommand": "yarn install",
        "buildCommand": "yarn build"
      }
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "dist/index.js"
    }
  ]
}

额外注意事项

  • 把src/index.ts替换成你项目实际的源码入口文件(比如src/server.ts)。
  • 确认package.json中的build命令正确,例如"build": "tsc",确保能正常生成dist文件夹。
  • 如果使用npm而非yarn,把配置中的yarn替换成npm run。

内容的提问来源于stack exchange,提问作者GianPierre Gálvez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:25:22