You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vercel构建Node18项目报错:缺失GLIBC_2.28依赖,本地无异常

解决Vercel构建Node 18时GLIBC版本不足的问题

报错原因

Vercel默认构建环境用的是旧版Linux发行版(比如CentOS 7),自带的GLIBC版本低于Node.js 18要求的2.27/2.28版本。而本地Mac用的是Darwin内核,不存在GLIBC依赖限制,所以本地构建正常,远端Vercel环境触发报错。

可行解决方案

方案1:使用Vercel兼容的Node 18版本(优先尝试)

在项目根目录的package.json中添加engines字段锁定兼容版本,同时同步Vercel后台配置:

"engines": {
  "node": "18.x",
  "npm": ">=9.x"
}

进入Vercel项目设置页面,将Node.js版本选择为18.x;如果安装依赖时出现冲突,手动将Install Command设置为npm install --legacy-peer-deps。

方案2:替换无GLIBC依赖的包

报错源于bufferutil这个原生预编译模块,可替换为纯JS实现的替代包,或直接移除该依赖(若项目非必需):

npm uninstall bufferutil
npm install bufferutil-js --save

方案3:自定义Docker构建镜像(适合刚需场景)

若必须使用特定Node版本及依赖,可自定义Docker镜像,基于含高版本GLIBC的基础镜像(如Ubuntu 20.04+):

  1. 项目根目录创建Dockerfile:
FROM node:18-bullseye
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]
  1. 在Vercel项目设置中,将构建方式切换为Docker,指定Dockerfile路径即可。

验证方法

修改完成后,可通过VS Code重新执行vercel deploy命令,或推送代码至关联Git仓库触发Vercel自动构建,检查是否仍存在GLIBC相关报错。

内容的提问来源于stack exchange,提问作者dwhynot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 01:42:22