执行npm install时报错node-sass@4.12.0 postinstall脚本失败如何解决
问题根因
- 版本不兼容:项目依赖的
node-sass@4.12.0最高仅支持Node.js v12,你当前使用的Node.js v14.17.0超出了适配范围,不存在对应版本的预编译二进制包,所以触发404下载失败 - 编译依赖不匹配:
node-sass下载失败后触发本地编译逻辑,调用的node-gyp@3.8.0仅支持Python 2.7,你本地安装的Python 3.9语法不兼容,导致编译失败
解决方案(按推荐优先级排序)
- 方案1(最适配SPFx项目):降级Node.js版本
卸载当前Node.js 14.x,安装Node.js 12.x LTS版本,完成后删除项目根目录下的node_modules文件夹和package-lock.json文件,重新执行npm install即可,该版本完全适配当前SPFx项目的所有依赖规则 - 方案2(不更换Node版本,替换sass依赖):将node-sass替换为兼容高版本Node的纯JS实现
先执行npm uninstall node-sass卸载旧依赖,再执行npm install sass@1.x --save-dev安装替代包,之后再执行npm install即可。sass和node-sass的API完全兼容,不需要本地编译也不存在Node版本适配问题 - 方案3(保留当前环境,修复编译依赖):
- 安装Python 2.7版本,安装完成后执行
npm config set python "你的Python2.7安装路径\python.exe",指定npm调用的Python版本 - 配置node-sass镜像源避免下载失败,执行
npm config set sass_binary_site https://npmmirror.com/mirrors/node-sass/ - 删除项目根目录下的
node_modules文件夹和package-lock.json文件,重新执行npm install
- 安装Python 2.7版本,安装完成后执行
内容的提问来源于stack exchange,提问作者John John
相关产品推荐
相关产品推荐

