Vercel部署失败:缺失GLIBC版本依赖问题求助
解决Vercel构建时GLIBC版本缺失问题
问题重现
构建时触发以下错误:
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node) node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
解决方案
1. 同步本地与Vercel的Node版本配置
- 在项目根目录创建
.nvmrc文件,写入:18.x - 在
package.json中添加engines字段,强制锁定版本:"engines": { "node": "18.x", "npm": ">=8.x" } - 登录Vercel控制台,进入项目
Settings > General > Node.js Version,选择18.x保存,重新触发构建。
2. 让Vercel重新编译依赖
- 确保
.gitignore中包含node_modules、.next(Next.js项目)等本地编译产物,避免上传到仓库。 - 删除本地的
node_modules和锁文件(package-lock.json/yarn.lock),提交代码后触发Vercel构建,让平台在自有环境中重新安装并编译依赖。
3. 替换依赖中的Native模块
如果项目使用了需要本地编译的Native模块(如加密、图像处理类库):
- 优先选择提供预编译二进制包的模块版本,避免本地编译带来的环境差异。
- 若必须本地编译,尝试升级/降级模块版本,确保其兼容Vercel默认构建环境(Ubuntu 20.04+,GLIBC 2.31+)。
4. 调整Vercel构建运行时(高级场景)
若以上方法无效,可在vercel.json中明确指定构建配置:
{ "buildCommand": "NODE_ENV=production npm run build", "settings": { "nodeVersion": "18.x" } }
内容的提问来源于stack exchange,提问作者David Young
相关产品推荐
相关产品推荐

