macOS环境下npm安装node-sass失败及解决方法咨询
解决macOS High Sierra上npm安装node-sass失败的问题
这种情况我在旧版macOS上碰到过好几次,结合你的环境(macOS 10.13.2、node v8.1.2、npm 5.0.3),问题出在两个核心点上:
为什么安装失败?
- node-gyp依赖缺失:node-sass是原生C++模块,需要通过
node-gyp编译才能安装,而node-gyp在macOS上必须依赖Xcode的Command Line Tools(CLT)。错误提示gyp: No Xcode or CLT version detected!就是系统找不到这个工具导致的。 - 版本不兼容:你的node v8.1.2是比较老的版本,和最新版node-sass不兼容,强行安装会触发更多编译错误,这也是直接
npm i node-sass失败的次要原因。
具体解决步骤
第一步:修复Xcode命令行工具
先搞定最核心的CLT问题:
- 打开终端,执行命令触发安装:
按照弹出的系统提示完成安装即可。xcode-select --install - 如果碰到"无法从软件更新服务器获得"的错误,先重置xcode-select路径:
之后再重新运行安装命令。sudo xcode-select --reset - 验证安装成功:执行
xcode-select -p,如果输出/Library/Developer/CommandLineTools,说明CLT已经正常工作。
第二步:安装适配node版本的node-sass
node-sass和node版本有严格的对应关系,你的node v8.x只能装node-sass@4.12.0这个版本(这是支持node v8的最后一个稳定版):
npm install node-sass@4.12.0 --save-dev
第三步:备选方案(跳过编译直接用二进制包)
如果还是遇到编译问题,可以直接下载预编译好的二进制包,绕开node-gyp的编译步骤:
- 先设置镜像环境变量:
export SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ - 再安装指定版本:
npm install node-sass@4.12.0 --save-dev
完成这些步骤后,再执行npm start应该就能正常运行AngularJS项目了。
内容的提问来源于stack exchange,提问作者bier hier
相关产品推荐
相关产品推荐

