Vercel部署报错:Cannot find module 'agent-base' 求助
问题详情
部署Vercel项目时触发以下错误:
Cannot find module 'agent-base'
Require stack:
- /var/task/node_modules/https-proxy-agent/dist/index.js
- /var/task/node_modules/gaxios/build/src/gaxios.js
- /var/task/node_modules/gaxios/build/src/index.js
- /var/task/node_modules/gcp-metadata/build/src/index.js
- /var/task/node_modules/google-auth-library/build/src/auth/googleauth.js
- /var/task/node_modules/google-auth-library/build/src/index.js
- /var/task/node_modules/googleapis-common/build/src/index.js
- /var/task/node_modules/googleapis/build/src/apis/abusiveexperiencereport/index.js
- /var/task/node_modules/googleapis/build/src/apis/index.js
- /var/task/node_modules/googleapis/build/src/googleapis.js
- /var/task/node_modules/googleapis/build/src/index.js
- /var/task/index.js
- /var/task/___now_launcher.js
- /var/runtime/index.mjs
INIT_REPORT Init Duration: 846.22 ms Phase: invoke Status: error Error Type: Runtime.ExitError
Error: Runtime exited with error: exit status 1
Runtime.ExitError
已在package.json中声明agent-base依赖:
{ "dependencies": { "agent-base": "^7.1.0", "body-parser": "^1.20.2", "express": "^4.18.3", "googleapis": "^133.0.0", "request": "^2.88.2" } }
vercel.json配置:
{ "version": 2, "builds": [ { "src": "index.js", "use": "@now/node" } ], "routes": [ { "src": "/(.*)", "dest": "index.js" } ] }
解决步骤
清理本地依赖缓存并重新安装
执行以下命令:rm -rf node_modules package-lock.json npm install完成后重新推送代码到Vercel关联的仓库。
清除Vercel构建缓存重新部署
进入Vercel项目控制台的Deployments页面,选择最新部署记录,点击Redeploy并勾选"Clear build cache"选项,重新触发构建。明确Vercel构建的安装命令
修改vercel.json,添加指定的依赖安装命令,确保依赖被正确安装:{ "version": 2, "builds": [ { "src": "index.js", "use": "@now/node", "config": { "installCommand": "npm install" } } ], "routes": [ { "src": "/(.*)", "dest": "index.js" } ] }调整
agent-base版本解决兼容性问题agent-base@7.x可能与依赖链中的其他包存在版本冲突,尝试降级到6.x版本:
修改package.json中的依赖版本:"agent-base": "^6.0.2"执行
npm install后推送代码重新部署。检查仓库提交文件
确认.gitignore未错误屏蔽package.json和package-lock.json,且这两个文件已提交到仓库,避免Vercel构建时无法读取依赖配置。
内容的提问来源于stack exchange,提问作者haxkd

