Mac M1 Big Sur系统执行npm install出现libsass报错如何解决
问题根因
该报错由三个兼容冲突共同导致:
- 项目依赖的低版本node-sass配套的node-gyp v3.8.0与Node 16.x版本不兼容
- 低版本node-sass原生不支持Mac M1 arm64架构
- 低版本node-gyp编译依赖Python 2,当前系统默认Python版本为3,不符合编译要求
最优解决方案(推荐)
node-sass官方已停止维护,优先替换为纯JavaScript实现的sass包,二者API完全兼容,无需修改业务代码即可直接替换:
- 清理原有依赖缓存
rm -rf node_modules package-lock.json yarn.lock
- 卸载项目内的node-sass依赖
npm uninstall node-sass
- 安装sass作为替代
npm install sass --save-dev
- 重新安装全量依赖
npm install
备选方案(必须保留node-sass时使用)
如果项目有特殊要求不能替换node-sass,按以下步骤适配:
- 安装Python 2并设置为编译时默认版本
brew install pyenv pyenv install 2.7.18 pyenv global 2.7.18 # zsh用户执行以下命令写入环境变量,bash用户替换为~/.bashrc echo 'export PATH="$HOME/.pyenv/shims:$PATH"' >> ~/.zshrc source ~/.zshrc # 验证Python版本,输出2.7.18即为配置成功 python --version
- 升级node-sass到兼容Node 16的版本:Node 16对应node-sass最低兼容版本为v6.0.0
npm install node-sass@6.0.1 --save-dev
- 若仍报错,右键终端应用选择「显示简介」,勾选「使用Rosetta打开」,重启终端后重新执行
npm install即可。
内容的提问来源于stack exchange,提问作者aatuc210
相关产品推荐
相关产品推荐

