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
相关产品推荐
相关产品推荐

