Node.js项目npm install报错:找不到Python可执行文件及ELifecycle问题
解决Node.js项目npm install时的Python缺失与node-sass下载404问题
我之前也碰到过几乎一模一样的问题,这俩错误(Python找不到+node-sass 404)叠加起来就导致了ELifecycle报错,咱们一步步来解决:
一、先搞定Python识别问题(node-gyp的特殊要求)
虽然你已经配置了环境变量,但node-gyp(编译原生模块的工具)有时候不认系统的环境变量,得明确指定:
- 方法1:全局配置npm的Python路径
打开命令行,执行对应版本的Python路径设置(比如你装的是Python3.7,Windows下):
如果是Python2.7,就换成对应的安装路径。npm config set python C:\Python37\python.exe - 方法2:安装时临时指定Python
直接在npm install命令后加参数:npm install --python=C:\Python37\python.exe - 方法3:重新安装node-gyp
有时候node-gyp本身有问题,执行:
然后再运行npm install -g node-gypnode-gyp configure测试是否能识别Python,如果成功说明配置没问题了。
二、解决node-sass预编译包下载404的问题
错误里的win32-x64-57_binding.node是node-sass v3.13.1对应Node.js 8.x的预编译包,这个版本的包可能已经被官方从GitHub移除了,或者网络访问不到,试试这几个方案:
- 方案1:用国内镜像源安装
国内镜像有完整的node-sass预编译包缓存,临时设置镜像安装:
要是想永久设置,就执行:npm install --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
之后再正常npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/npm install就行。 - 方案2:手动下载指定binding.node文件
- 去国内镜像站找到对应版本的文件:比如v3.13.1下的
win32-x64-57_binding.node - 下载后,设置环境变量指定路径(Windows命令行):
set SASS_BINARY_PATH=C:\你下载的文件路径\win32-x64-57_binding.node - 再执行
npm install,node-sass就会直接用你本地的文件,不用下载了。
- 去国内镜像站找到对应版本的文件:比如v3.13.1下的
- 方案3:升级node-sass版本(如果项目允许)
v3.13.1太老了,兼容性问题多,如果项目依赖允许,把package.json里的node-sass版本升级到v4.x或更高(比如v4.14.1),新版本的预编译包更全,也不容易出现404。
三、解决ELifecycle错误
这个错误其实是前面两个问题导致的连锁反应,解决完上面的问题后,再做这两步确保彻底解决:
- 删除项目目录下的
node_modules文件夹和package-lock.json文件 - 清理npm缓存:
然后重新执行npm cache clean --forcenpm install
按照这个顺序来,应该就能顺利完成安装了。
内容的提问来源于stack exchange,提问作者Indra
相关产品推荐
相关产品推荐

