问题描述
代码下载下来后,直接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中找到了类似的。
解决方法
命令如下:
xcode-select --install
sudo xcode-select --switch /Library/Developer/CommandLineTools
sudo npm explore npm -g -- npm install node-gyp@latest
总算可以了。对于安装总是会出现各种问题,有时候网络不好,会报错,很多时候版本不对也会报错。这块我就是试,没有很好的解决办法