Mac M1执行npm i失败报错求助(bufferutil/node-gyp相关)
解决方案:Mac M1上npm安装bufferutil依赖失败
问题分析
报错核心是bufferutil依赖在node-gyp构建时出现连接中断(Error: aborted),结合M1芯片环境,主要诱因可能是架构兼容问题、node-gyp版本过旧、Xcode工具链缺失或网络不稳定。
可行解决方案
1. 安装/更新Xcode命令行工具
M1芯片构建原生依赖必须依赖完整的Xcode工具链:
xcode-select --install sudo xcodebuild -license accept
2. 更新node-gyp版本
项目中使用的node-gyp@3.8.0版本过旧,不兼容M1架构,全局更新后重试:
npm install -g node-gyp@latest rm -rf node_modules package-lock.json npm i
或者临时指定node-gyp路径执行安装:
npm i --npm_config_node_gyp=$(which node-gyp)
3. 用Rosetta 2兼容x86架构
部分旧版原生暂不支持arm64,通过Rosetta运行终端解决:
- 找到「终端」应用,右键→显示简介→勾选「使用Rosetta打开」
- 重启终端后执行:
rm -rf node_modules package-lock.json npm i
或者临时用x86架构执行命令:
arch -x86_64 npm i
4. 清理缓存并重新安装
缓存损坏也可能导致构建失败:
npm cache clean --force rm -rf node_modules package-lock.json npm i
5. 指定bufferutil兼容版本
手动指定支持M1的bufferutil版本,修改package.json:
"dependencies": { "bufferutil": "^4.0.7" }
然后执行:
npm i
6. 切换npm镜像解决网络问题
报错中出现连接中断,可能是网络不稳定,切换国内镜像:
npm config set registry https://registry.npmmirror.com rm -rf node_modules package-lock.json npm i
内容的提问来源于stack exchange,提问作者lalinda
相关产品推荐
相关产品推荐

