如何在Vercel部署Node.js+Express+TS应用?部署遇404问题求助
解决Vercel部署Express+TypeScript应用的404问题
添加Vercel专属配置文件
Vercel对Node.js服务的部署需要明确的路由和构建规则,在项目根目录创建vercel.json,配置如下:{ "buildCommand": "npm run build", "builds": [ { "src": "dist/server.js", "use": "@vercel/node" } ], "routes": [ { "src": "/(.*)", "dest": "dist/server.js" } ] }该配置会告知Vercel执行正确的构建命令,并将所有请求转发到你的Express入口文件。
验证构建产物完整性
查看Vercel部署日志,确认npm run build命令执行成功,dist目录下的server.js及其他依赖文件是否正常生成。如果构建环节出错,会导致Vercel找不到可运行的服务入口,直接返回404。修正package.json脚本语法
你的scripts配置末尾多了一个冗余逗号,虽然本地环境可能忽略,但在Vercel的严格解析环境下可能引发问题,建议移除:"scripts": { "start": "cross-env NODE_ENV=production node dist/server.js", "build": "swc src -d dist --source-maps --copy-files", "serve": "cross-env NODE_ENV=development node dist/server.js" }检查端口配置
Vercel使用动态分配的端口,不能硬编码固定端口(如3000),确保你的Express代码中使用环境变量获取端口:const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server running on port ${port}`); });
内容的提问来源于stack exchange,提问作者Krishna Karki
相关产品推荐
相关产品推荐

