执行yarn/yarn install/yarn add命令均报错无法正常运行求助
问题根因
你遇到的报错来自两个核心冲突:
- 项目依赖的
grpc@1.20.3版本过老,官方没有提供适配Node14的预编译二进制包,安装时会触发本地源码编译 - 编译依赖的
node-gyp@3.8.0仅支持Python2语法,系统默认调用的Python3无法识别老版本print语法,导致编译失败
你能正常启动项目、安装普通包的原因是:仅grpc这一个原生包编译失败,其他纯JS依赖都已经安装完成,只要你的项目运行时没有调用grpc相关功能,就不会受影响。
可行解决方案
方案1:指定Python2路径完成编译(无需修改项目依赖)
你已经安装了Python2,只需要在执行yarn命令时指定Python路径即可:
# 单次安装指定Python2 yarn install --python=/usr/bin/python2 # 全局设置默认Python版本,后续所有npm/yarn装包都默认用Python2 npm config set python /usr/bin/python2
方案2:升级依赖为无编译版本(长期推荐)
老版本grpc和node-sass都已经停止维护,且都存在Node版本适配问题,直接替换为无需编译的兼容版本即可彻底解决问题:
- 将
grpc依赖替换为纯JS实现的@grpc/grpc-js,API完全兼容,无需编译 - 将
node-sass依赖替换为纯JS实现的sass(原dart-sass),语法完全兼容,无环境依赖
修改package.json对应依赖后重新执行yarn install即可,不会再触发编译报错。
方案3:切换适配的Node版本
grpc@1.20.3最高支持Node12版本,通过nvm安装Node12并切换到对应版本后再执行装包命令,可直接下载对应预编译包,无需本地编译,自然不会触发Python相关错误。
内容的提问来源于stack exchange,提问作者SzymonOwczarek
相关产品推荐
相关产品推荐

