Mac M1Pro无法启动旧项目,npm i遇node-sass安装报错
解决Mac M1Pro上node-sass@4.14.1安装失败及node-gyp编译问题
核心问题拆解
你的问题源于两个不兼容点:node-sass旧版本未适配Apple Silicon架构,以及Python版本与旧版node-gyp脚本语法冲突。
解决步骤
1. 处理node-sass@4.14.1无darwin-arm64预编译包问题
node-sass@4.14.1发布时还没有适配Apple Silicon(arm64)的预编译包,导致下载报错404。两种解决方式:
- 方式一:用Rosetta 2模拟x86环境安装
终端执行:
此命令让Node.js以x86架构运行,自动下载适配的darwin-x64预编译包,跳过本地编译步骤。arch -x86_64 npm install - 方式二:手动指定预编译包URL
直接指定x86架构的包地址:npm install node-sass@4.14.1 --sass-binary-url=https://github.com/sass/node-sass/releases/download/v4.14.1/darwin-x64-83_binding.node
2. 修复Python3.10与node-gyp的语法冲突
node-sass@4.14.1依赖的node-gyp版本不支持Python3.10(Python3.10要求print必须带括号,旧版node-gyp脚本用了Python2的无括号语法)。解决方式:
- 用pyenv切换到兼容的Python版本(如3.9或2.7):
切换完成后再执行# 若未安装Python3.9,先执行安装 pyenv install 3.9.16 # 切换当前项目使用Python3.9 pyenv local 3.9.16npm install即可正常编译。
综合执行方案
如果单独操作无效,可合并执行:
arch -x86_64 pyenv local 3.9.16 arch -x86_64 npm install
内容的提问来源于stack exchange,提问作者Evhenii
相关产品推荐
相关产品推荐

