Vercel部署cmc-proxy失败:Cannot convert undefined or null to object
解决Vercel部署cmc-proxy时ncc编译index.js不存在的错误
问题根源
Vercel部署时默认优先查找index.js作为Node.js函数入口,同时如果项目的build脚本里ncc编译命令指定的是index.js,或者配置文件未被正确识别,就会触发找不到文件的错误。本地运行正常是因为npm start直接执行proxy.js,跳过了ncc编译环节。
解决方案
替换配置文件为
vercel.json
Vercel现在优先识别vercel.json而非旧版的now.json,虽然now.json有兼容性,但重命名为vercel.json能确保配置被正确读取。配置内容需明确指定函数入口和路由映射:{ "functions": { "proxy.js": { "runtime": "@vercel/node@2.x" } }, "routes": [ { "src": "/(.*)", "dest": "/proxy.js" } ] }修正
package.json的build脚本
检查package.json中的scripts字段,确保build命令里ncc编译的是proxy.js而非index.js:"scripts": { "start": "node proxy.js", "build": "ncc build proxy.js -o dist" }Vercel部署时会自动执行
build脚本,若此处指定错误入口,必然触发编译失败。手动在Vercel控制台指定入口
进入Vercel项目的「Settings」→「Build & Development Settings」,在「Functions」区域手动设置Node.js函数的入口文件为proxy.js,强制覆盖默认查找逻辑。清理缓存重新部署
在Vercel控制台点击「Redeploy」,并勾选「Clear build cache」选项,确保旧配置被清除,新的入口设置生效。
内容的提问来源于stack exchange,提问作者code_learner93
相关产品推荐
相关产品推荐

