mac下npm install 报错 Error: `gyp` failed with exit code

问题描述

代码下载下来后,直接npm install ,报错如下:


那gyp是个什么东东呢,度娘说是平台编译文件用的。然后查到可能是node版本不对,于是就降低了版本。

node降低版本

通过n模块来管理node版本。使用npm全局安装n (由于要写入文件,所以使用了sudo给操作提权,使用管理员权限执行命令)

$ sudo npm i -g n

安装制定版本

$ n xx.xx.x (xx.xx.x 为要安装的版本号)

切换node版本(输入命令后上下键盘选择确认)

$ n

参考:Mac下node版本切换

然而。。。。 降低来版本并么有用!!!!!

原因猜测

gyp是一个编译工具,类似于makefile这种命令,它主要用来编译C++的,node里面集成了它,叫做node-gyp。

npm分发的都是源码,npm install的时候都是拉取源码后在本地编译,这个时候因为不可避免的,源码里面用到其他语言,比如C或者C++,所以编译的时候,就需要其他语言的编译工具比如node-gyp,但这些编译工具其实在不同系统中也是依赖不同系统的编译工具的,比如在mac中,这个node-gyp其实是依赖xcode提供的那些编译工具来具体执行的,所以我碰到的问题就在这里,是xcode的工具除了问题,xcode的工具管理是xcode-select,需要重新设置或者安装或者重置一下。

再细看一下问题,貌似是Xcode什么东西导致的错误。从GitHub issues中找到了类似的。

解决方法

issue地址

命令如下:

xcode-select --install

sudo xcode-select --switch /Library/Developer/CommandLineTools

sudo npm explore npm -g -- npm install node-gyp@latest

总算可以了。对于安装总是会出现各种问题,有时候网络不好,会报错,很多时候版本不对也会报错。这块我就是试,没有很好的解决办法

你可能感兴趣的:(mac下npm install 报错 Error: `gyp` failed with exit code)