SPFx项目执行gulp build失败:node-sass依赖编译报错
问题根因
- 你当前使用的
node-gyp@3.8.0仅支持Python 2.7,系统PATH里优先命中的是Inkscape自带的Python 3,执行Python2语法语句直接报错,导致node-sass本地编译失败。 - 另外node-sass本身已经停止维护,微软新版本的SPFx构建工具已经用
sass(dart-sass)替代了node-sass,可彻底避免这类环境依赖问题。
修复方案
方案1:临时修复(适配现有项目依赖不升级)
- 安装Python 2.7到本地,安装时勾选「Add Python to PATH」选项
- 配置npm的python路径指向Python2.7的可执行文件,执行命令:
npm config set python C:\path\to\your\python2.7.exe
- 清空本地缓存后重新安装依赖:
npm cache clean --force rd /s /q node_modules del package-lock.json npm install
如果不想修改全局npm配置,也可以在每次执行npm命令前临时指定PYTHON环境变量:
set PYTHON=C:\path\to\python2.7.exe
方案2:长期修复(推荐,彻底规避node-sass问题)
升级SPFx项目的构建依赖,替换node-sass为dart-sass:
- 在package.json中添加resolutions配置强制替换依赖:
{ "resolutions": { "node-sass": "npm:sass@^1.58.0" } }
- 重新安装依赖即可,无需Python2环境就能正常构建。
内容的提问来源于stack exchange,提问作者Arclight
相关产品推荐
相关产品推荐

